aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--strftime.c8
-rw-r--r--test/ruby/test_time.rb5
3 files changed, 16 insertions, 4 deletions
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 <shugo@ruby-lang.org>
+
+ * 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 <tadf@dotrb.org>
* 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