diff options
author | Kevin B Kenny <kennykb@acm.org> | 2009-10-29 01:17:54 (GMT) |
---|---|---|
committer | Kevin B Kenny <kennykb@acm.org> | 2009-10-29 01:17:54 (GMT) |
commit | d6e3f26a3c15aa9926fafac19a13388a9fae9367 (patch) | |
tree | 69ad1f8c77ef864732b188ee501ba3ca98ed5887 /library/clock.tcl | |
parent | 78dd3b3955f6c2f710b83b1cbdde2aa96be2aecb (diff) | |
download | tcl-d6e3f26a3c15aa9926fafac19a13388a9fae9367.zip tcl-d6e3f26a3c15aa9926fafac19a13388a9fae9367.tar.gz tcl-d6e3f26a3c15aa9926fafac19a13388a9fae9367.tar.bz2 |
* library/clock.tcl (LocalizeFormat):
* tests/clock.test (clock-67.1):
Corrected a problem where '%%' followed by a letter in a format group
could expand recursively: %%R would turn into %%H:%M:%S. [Bug 2819334]
Diffstat (limited to 'library/clock.tcl')
-rw-r--r-- | library/clock.tcl | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/library/clock.tcl b/library/clock.tcl index 51118e1..c75a9e2 100644 --- a/library/clock.tcl +++ b/library/clock.tcl @@ -13,7 +13,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: clock.tcl,v 1.56 2009/10/27 03:23:32 kennykb Exp $ +# RCS: @(#) $Id: clock.tcl,v 1.57 2009/10/29 01:17:54 kennykb Exp $ # #---------------------------------------------------------------------- @@ -2514,24 +2514,28 @@ proc ::tcl::clock::LocalizeFormat { locale format } { } set inFormat $format - # Handle locale-dependent format groups by mapping them out of the input + # Handle locale-dependent format groups by mapping them out of the format # string. Note that the order of the [string map] operations is - # significant because earlier formats can refer to later ones; for example + # significant because later formats can refer to later ones; for example # %c can refer to %X, which in turn can refer to %T. - set format [string map [list %c [mc DATE_TIME_FORMAT] \ - %Ec [mc LOCALE_DATE_TIME_FORMAT]] $format] - set format [string map [list %x [mc DATE_FORMAT] \ - %Ex [mc LOCALE_DATE_FORMAT] \ - %X [mc TIME_FORMAT] \ - %EX [mc LOCALE_TIME_FORMAT]] $format] - set format [string map [list %r [mc TIME_FORMAT_12] \ - %R [mc TIME_FORMAT_24] \ - %T [mc TIME_FORMAT_24_SECS]] $format] - set format [string map [list %D %m/%d/%Y \ - %EY [mc LOCALE_YEAR_FORMAT]\ - %+ {%a %b %e %H:%M:%S %Z %Y}] $format] - + set list { + %% %% + %D %m/%d/%Y + %+ {%a %b %e %H:%M:%S %Z %Y} + } + lappend list %EY [string map $list [mc LOCALE_YEAR_FORMAT]] + lappend list %T [string map $list [mc TIME_FORMAT_24_SECS]] + lappend list %R [string map $list [mc TIME_FORMAT_24]] + lappend list %r [string map $list [mc TIME_FORMAT_12]] + lappend list %X [string map $list [mc TIME_FORMAT]] + lappend list %EX [string map $list [mc LOCALE_TIME_FORMAT]] + lappend list %x [string map $list [mc DATE_FORMAT]] + lappend list %Ex [string map $list [mc LOCALE_DATE_FORMAT]] + lappend list %c [string map $list [mc DATE_TIME_FORMAT]] + lappend list %Ec [string map $list [mc LOCALE_DATE_TIME_FORMAT]] + set format [string map $list $format] + dict set McLoaded $locale FORMAT $inFormat $format return $format } |