diff --git a/ChangeLog b/ChangeLog index 17e1a2873c..cff28b6d94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Dec 23 18:44:21 2008 Tanaka Akira + + * strftime.c (rb_strftime): use locale insensitive functions for tr_TR + locale. + Tue Dec 23 17:38:03 2008 Tanaka Akira * lib/test/unit/assertions.rb (assert_equal): show small differences diff --git a/strftime.c b/strftime.c index 248c695e01..38167fd384 100644 --- a/strftime.c +++ b/strftime.c @@ -627,8 +627,8 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept timeptr->tm_year + 1900L); if (w < 0) goto err; for (i = 3; i < 6; i++) - if (islower(s[i])) - s[i] = toupper(s[i]); + if (ISLOWER(s[i])) + s[i] = TOUPPER(s[i]); s += w; continue; #endif @@ -781,12 +781,12 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept switch (flags & (BIT_OF(UPPER)|BIT_OF(LOWER))) { case BIT_OF(UPPER): do { - if (islower(*s)) *s = toupper(*s); + if (ISLOWER(*s)) *s = TOUPPER(*s); } while (s++, --i); break; case BIT_OF(LOWER): do { - if (isupper(*s)) *s = tolower(*s); + if (ISUPPER(*s)) *s = TOLOWER(*s); } while (s++, --i); break; default: diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index a1a5bfc7fb..b56fae0839 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -468,5 +468,6 @@ class TestTime < Test::Unit::TestCase assert_equal("JAN", T2000.strftime("%#b")) assert_equal("JANUARY", T2000.strftime("%#B")) assert_equal("JAN", T2000.strftime("%#h")) + assert_equal("FRIDAY", Time.local(2008,1,4).strftime("%#A")) end end