diff options
author | sebres <sebres@users.sourceforge.net> | 2017-01-10 22:34:11 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2017-01-10 22:34:11 (GMT) |
commit | 33212a94d6d0cfef22ff3aced4795edba0932540 (patch) | |
tree | 3d22b87eda29f9f003d56fc38945af2f73790410 | |
parent | 590e25c971a4f7a6663c82a6c901500c72012cea (diff) | |
download | tcl-33212a94d6d0cfef22ff3aced4795edba0932540.zip tcl-33212a94d6d0cfef22ff3aced4795edba0932540.tar.gz tcl-33212a94d6d0cfef22ff3aced4795edba0932540.tar.bz2 |
bug fix by match word token (FindWordEnd fixed);
repaired current locale switch
-rw-r--r-- | generic/tclClockFmt.c | 6 | ||||
-rwxr-xr-x | library/clock.tcl | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/generic/tclClockFmt.c b/generic/tclClockFmt.c index 5d3dcaf..a10d05d 100644 --- a/generic/tclClockFmt.c +++ b/generic/tclClockFmt.c @@ -609,12 +609,12 @@ FindWordEnd( return ++p; } /* multi-char word */ - while (*p++ == *x++) { - if (x >= tok->tokWord.end || p >= end) { + do + if (*p++ != *x++) { /* no match -> error */ return NULL; } - }; + while (x <= tok->tokWord.end && p < end); return p; } diff --git a/library/clock.tcl b/library/clock.tcl index f874e4d..ca12f4a 100755 --- a/library/clock.tcl +++ b/library/clock.tcl @@ -739,7 +739,7 @@ proc ::tcl::clock::ParseClockFormatFormat {procName format locale} { # Map away the locale-dependent composite format groups - EnterLocale $locale + set locale [EnterLocale $locale] # Change locale if a fresh locale has been given on the command line. @@ -2189,6 +2189,7 @@ proc ::tcl::clock::EnterLocale { locale } { } # Select the locale, eventually load it mcpackagelocale set $locale + return $locale } #---------------------------------------------------------------------- @@ -3028,7 +3029,7 @@ proc ::tcl::clock::SetupTimeZone { timezone {alias {}} } { && [catch { LoadZoneinfoFile $timezone } - opts] } { # Check may be a legacy zone: - + if { $alias eq {} && ![catch { set tzname [dict get $LegacyTimeZone [string tolower $timezone]] }] } { @@ -4460,6 +4461,9 @@ proc ::tcl::clock::AddDays { days clockval timezone changeover } { #---------------------------------------------------------------------- proc ::tcl::clock::ChangeCurrentLocale {args} { + + configure -default-locale [lindex $args 0] + variable FormatProc variable LocaleNumeralCache |