summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
Diffstat (limited to 'library')
-rw-r--r--library/http1.0/http.tcl377
-rw-r--r--library/http1.0/pkgIndex.tcl11
-rw-r--r--library/msgcat/msgcat.tcl300
-rw-r--r--library/msgcat/pkgIndex.tcl4
-rw-r--r--library/tzdata/Africa/Sao_Tome9
-rw-r--r--library/tzdata/America/Campo_Grande164
-rw-r--r--library/tzdata/America/Cuiaba164
-rw-r--r--library/tzdata/America/La_Paz2
-rw-r--r--library/tzdata/America/Sao_Paulo164
-rw-r--r--library/tzdata/Asia/Tokyo16
10 files changed, 478 insertions, 733 deletions
diff --git a/library/http1.0/http.tcl b/library/http1.0/http.tcl
deleted file mode 100644
index 8329de4..0000000
--- a/library/http1.0/http.tcl
+++ /dev/null
@@ -1,377 +0,0 @@
-# http.tcl
-# Client-side HTTP for GET, POST, and HEAD commands.
-# These routines can be used in untrusted code that uses the Safesock
-# security policy.
-# These procedures use a callback interface to avoid using vwait,
-# which is not defined in the safe base.
-#
-# See the http.n man page for documentation
-
-package provide http 1.0
-
-array set http {
- -accept */*
- -proxyhost {}
- -proxyport {}
- -useragent {Tcl http client package 1.0}
- -proxyfilter httpProxyRequired
-}
-proc http_config {args} {
- global http
- set options [lsort [array names http -*]]
- set usage [join $options ", "]
- if {[llength $args] == 0} {
- set result {}
- foreach name $options {
- lappend result $name $http($name)
- }
- return $result
- }
- regsub -all -- - $options {} options
- set pat ^-([join $options |])$
- if {[llength $args] == 1} {
- set flag [lindex $args 0]
- if {[regexp -- $pat $flag]} {
- return $http($flag)
- } else {
- return -code error "Unknown option $flag, must be: $usage"
- }
- } else {
- foreach {flag value} $args {
- if {[regexp -- $pat $flag]} {
- set http($flag) $value
- } else {
- return -code error "Unknown option $flag, must be: $usage"
- }
- }
- }
-}
-
- proc httpFinish { token {errormsg ""} } {
- upvar #0 $token state
- global errorInfo errorCode
- if {[string length $errormsg] != 0} {
- set state(error) [list $errormsg $errorInfo $errorCode]
- set state(status) error
- }
- catch {close $state(sock)}
- catch {after cancel $state(after)}
- if {[info exists state(-command)]} {
- if {[catch {eval $state(-command) {$token}} err]} {
- if {[string length $errormsg] == 0} {
- set state(error) [list $err $errorInfo $errorCode]
- set state(status) error
- }
- }
- unset state(-command)
- }
-}
-proc http_reset { token {why reset} } {
- upvar #0 $token state
- set state(status) $why
- catch {fileevent $state(sock) readable {}}
- httpFinish $token
- if {[info exists state(error)]} {
- set errorlist $state(error)
- unset state(error)
- eval error $errorlist
- }
-}
-proc http_get { url args } {
- global http
- if {![info exists http(uid)]} {
- set http(uid) 0
- }
- set token http#[incr http(uid)]
- upvar #0 $token state
- http_reset $token
- array set state {
- -blocksize 8192
- -validate 0
- -headers {}
- -timeout 0
- state header
- meta {}
- currentsize 0
- totalsize 0
- type text/html
- body {}
- status ""
- }
- set options {-blocksize -channel -command -handler -headers \
- -progress -query -validate -timeout}
- set usage [join $options ", "]
- regsub -all -- - $options {} options
- set pat ^-([join $options |])$
- foreach {flag value} $args {
- if {[regexp $pat $flag]} {
- # Validate numbers
- if {[info exists state($flag)] && \
- [regexp {^[0-9]+$} $state($flag)] && \
- ![regexp {^[0-9]+$} $value]} {
- return -code error "Bad value for $flag ($value), must be integer"
- }
- set state($flag) $value
- } else {
- return -code error "Unknown option $flag, can be: $usage"
- }
- }
- if {! [regexp -nocase {^(http://)?([^/:]+)(:([0-9]+))?(/.*)?$} $url \
- x proto host y port srvurl]} {
- error "Unsupported URL: $url"
- }
- if {[string length $port] == 0} {
- set port 80
- }
- if {[string length $srvurl] == 0} {
- set srvurl /
- }
- if {[string length $proto] == 0} {
- set url http://$url
- }
- set state(url) $url
- if {![catch {$http(-proxyfilter) $host} proxy]} {
- set phost [lindex $proxy 0]
- set pport [lindex $proxy 1]
- }
- if {$state(-timeout) > 0} {
- set state(after) [after $state(-timeout) [list http_reset $token timeout]]
- }
- if {[info exists phost] && [string length $phost]} {
- set srvurl $url
- set s [socket $phost $pport]
- } else {
- set s [socket $host $port]
- }
- set state(sock) $s
-
- # Send data in cr-lf format, but accept any line terminators
-
- fconfigure $s -translation {auto crlf} -buffersize $state(-blocksize)
-
- # The following is disallowed in safe interpreters, but the socket
- # is already in non-blocking mode in that case.
-
- catch {fconfigure $s -blocking off}
- set len 0
- set how GET
- if {[info exists state(-query)]} {
- set len [string length $state(-query)]
- if {$len > 0} {
- set how POST
- }
- } elseif {$state(-validate)} {
- set how HEAD
- }
- puts $s "$how $srvurl HTTP/1.0"
- puts $s "Accept: $http(-accept)"
- puts $s "Host: $host"
- puts $s "User-Agent: $http(-useragent)"
- foreach {key value} $state(-headers) {
- regsub -all \[\n\r\] $value {} value
- set key [string trim $key]
- if {[string length $key]} {
- puts $s "$key: $value"
- }
- }
- if {$len > 0} {
- puts $s "Content-Length: $len"
- puts $s "Content-Type: application/x-www-form-urlencoded"
- puts $s ""
- fconfigure $s -translation {auto binary}
- puts -nonewline $s $state(-query)
- } else {
- puts $s ""
- }
- flush $s
- fileevent $s readable [list httpEvent $token]
- if {! [info exists state(-command)]} {
- http_wait $token
- }
- return $token
-}
-proc http_data {token} {
- upvar #0 $token state
- return $state(body)
-}
-proc http_status {token} {
- upvar #0 $token state
- return $state(status)
-}
-proc http_code {token} {
- upvar #0 $token state
- return $state(http)
-}
-proc http_size {token} {
- upvar #0 $token state
- return $state(currentsize)
-}
-
- proc httpEvent {token} {
- upvar #0 $token state
- set s $state(sock)
-
- if {[eof $s]} {
- httpEof $token
- return
- }
- if {$state(state) == "header"} {
- set n [gets $s line]
- if {$n == 0} {
- set state(state) body
- if {![regexp -nocase ^text $state(type)]} {
- # Turn off conversions for non-text data
- fconfigure $s -translation binary
- if {[info exists state(-channel)]} {
- fconfigure $state(-channel) -translation binary
- }
- }
- if {[info exists state(-channel)] &&
- ![info exists state(-handler)]} {
- # Initiate a sequence of background fcopies
- fileevent $s readable {}
- httpCopyStart $s $token
- }
- } elseif {$n > 0} {
- if {[regexp -nocase {^content-type:(.+)$} $line x type]} {
- set state(type) [string trim $type]
- }
- if {[regexp -nocase {^content-length:(.+)$} $line x length]} {
- set state(totalsize) [string trim $length]
- }
- if {[regexp -nocase {^([^:]+):(.+)$} $line x key value]} {
- lappend state(meta) $key $value
- } elseif {[regexp ^HTTP $line]} {
- set state(http) $line
- }
- }
- } else {
- if {[catch {
- if {[info exists state(-handler)]} {
- set n [eval $state(-handler) {$s $token}]
- } else {
- set block [read $s $state(-blocksize)]
- set n [string length $block]
- if {$n >= 0} {
- append state(body) $block
- }
- }
- if {$n >= 0} {
- incr state(currentsize) $n
- }
- } err]} {
- httpFinish $token $err
- } else {
- if {[info exists state(-progress)]} {
- eval $state(-progress) {$token $state(totalsize) $state(currentsize)}
- }
- }
- }
-}
- proc httpCopyStart {s token} {
- upvar #0 $token state
- if {[catch {
- fcopy $s $state(-channel) -size $state(-blocksize) -command \
- [list httpCopyDone $token]
- } err]} {
- httpFinish $token $err
- }
-}
- proc httpCopyDone {token count {error {}}} {
- upvar #0 $token state
- set s $state(sock)
- incr state(currentsize) $count
- if {[info exists state(-progress)]} {
- eval $state(-progress) {$token $state(totalsize) $state(currentsize)}
- }
- if {([string length $error] != 0)} {
- httpFinish $token $error
- } elseif {[eof $s]} {
- httpEof $token
- } else {
- httpCopyStart $s $token
- }
-}
- proc httpEof {token} {
- upvar #0 $token state
- if {$state(state) == "header"} {
- # Premature eof
- set state(status) eof
- } else {
- set state(status) ok
- }
- set state(state) eof
- httpFinish $token
-}
-proc http_wait {token} {
- upvar #0 $token state
- if {![info exists state(status)] || [string length $state(status)] == 0} {
- vwait $token\(status)
- }
- if {[info exists state(error)]} {
- set errorlist $state(error)
- unset state(error)
- eval error $errorlist
- }
- return $state(status)
-}
-
-# Call http_formatQuery with an even number of arguments, where the first is
-# a name, the second is a value, the third is another name, and so on.
-
-proc http_formatQuery {args} {
- set result ""
- set sep ""
- foreach i $args {
- append result $sep [httpMapReply $i]
- if {$sep != "="} {
- set sep =
- } else {
- set sep &
- }
- }
- return $result
-}
-
-# do x-www-urlencoded character mapping
-# The spec says: "non-alphanumeric characters are replaced by '%HH'"
-# 1 leave alphanumerics characters alone
-# 2 Convert every other character to an array lookup
-# 3 Escape constructs that are "special" to the tcl parser
-# 4 "subst" the result, doing all the array substitutions
-
- proc httpMapReply {string} {
- global httpFormMap
- set alphanumeric a-zA-Z0-9
- if {![info exists httpFormMap]} {
-
- for {set i 1} {$i <= 256} {incr i} {
- set c [format %c $i]
- if {![string match \[$alphanumeric\] $c]} {
- set httpFormMap($c) %[format %.2x $i]
- }
- }
- # These are handled specially
- array set httpFormMap {
- " " + \n %0d%0a
- }
- }
- regsub -all \[^$alphanumeric\] $string {$httpFormMap(&)} string
- regsub -all \n $string {\\n} string
- regsub -all \t $string {\\t} string
- regsub -all {[][{})\\]\)} $string {\\&} string
- return [subst $string]
-}
-
-# Default proxy filter.
- proc httpProxyRequired {host} {
- global http
- if {[info exists http(-proxyhost)] && [string length $http(-proxyhost)]} {
- if {![info exists http(-proxyport)] || ![string length $http(-proxyport)]} {
- set http(-proxyport) 8080
- }
- return [list $http(-proxyhost) $http(-proxyport)]
- } else {
- return {}
- }
-}
diff --git a/library/http1.0/pkgIndex.tcl b/library/http1.0/pkgIndex.tcl
deleted file mode 100644
index ab6170f..0000000
--- a/library/http1.0/pkgIndex.tcl
+++ /dev/null
@@ -1,11 +0,0 @@
-# Tcl package index file, version 1.0
-# This file is generated by the "pkg_mkIndex" command
-# and sourced either when an application starts up or
-# by a "package unknown" script. It invokes the
-# "package ifneeded" command to set up package-related
-# information so that packages will be loaded automatically
-# in response to "package require" commands. When this
-# script is sourced, the variable $dir must contain the
-# full path name of this file's directory.
-
-package ifneeded http 1.0 [list tclPkgSetup $dir http 1.0 {{http.tcl source {httpCopyDone httpCopyStart httpEof httpEvent httpFinish httpMapReply httpProxyRequired http_code http_config http_data http_formatQuery http_get http_reset http_size http_status http_wait}}}]
diff --git a/library/msgcat/msgcat.tcl b/library/msgcat/msgcat.tcl
index 646bc17..598330d 100644
--- a/library/msgcat/msgcat.tcl
+++ b/library/msgcat/msgcat.tcl
@@ -4,22 +4,24 @@
# message catalog facility for Tcl programs. It should be
# loaded with the command "package require msgcat".
#
-# Copyright (c) 2010-2015 by Harald Oehlmann.
+# Copyright (c) 2010-2018 by Harald Oehlmann.
# Copyright (c) 1998-2000 by Ajuba Solutions.
# Copyright (c) 1998 by Mark Harrison.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-package require Tcl 8.5-
+# We use oo::define::self, which is new in Tcl 8.7
+package require Tcl 8.7-
# When the version number changes, be sure to update the pkgIndex.tcl file,
# and the installation directory in the Makefiles.
-package provide msgcat 1.6.1
+package provide msgcat 1.7.0
namespace eval msgcat {
- namespace export mc mcexists mcload mclocale mcmax mcmset mcpreferences mcset\
+ namespace export mc mcn mcexists mcload mclocale mcmax\
+ mcmset mcpreferences mcset\
mcunknown mcflset mcflmset mcloadedlocales mcforgetpackage\
- mcpackageconfig mcpackagelocale
+ mcpackagenamespaceget mcpackageconfig mcpackagelocale mcutil
# Records the list of locales to search
variable Loclist {}
@@ -41,7 +43,13 @@ namespace eval msgcat {
# namespace should be themselves dict values and the value is
# the translated string.
variable Msgs [dict create]
+}
+# create ensemble namespace for mcutil command
+namespace eval msgcat::mcutil {
+ namespace export getsystemlocale getpreferences
+ namespace ensemble create -prefix 0
+
# Map of language codes used in Windows registry to those of ISO-639
if {[info sharedlibextension] eq ".dll"} {
variable WinRegToISO639 [dict create {*}{
@@ -192,10 +200,30 @@ namespace eval msgcat {
# Returns the translated string. Propagates errors thrown by the
# format command.
-proc msgcat::mc {src args} {
- # this may be replaced by:
- # return [mcget -namespace [uplevel 1 [list ::namespace current]] --\
- # $src {*}$args]
+proc msgcat::mc {args} {
+ tailcall mcn [PackageNamespaceGet] {*}$args
+}
+
+# msgcat::mcn --
+#
+# Find the translation for the given string based on the current
+# locale setting. Check the passed namespace first, then look in each
+# parent namespace until the source is found. If additional args are
+# specified, use the format command to work them into the traslated
+# string.
+# If no catalog item is found, mcunknown is called in the caller frame
+# and its result is returned.
+#
+# Arguments:
+# ns Package namespace of the translation
+# src The string to translate.
+# args Args to pass to the format command
+#
+# Results:
+# Returns the translated string. Propagates errors thrown by the
+# format command.
+
+proc msgcat::mcn {ns src args} {
# Check for the src in each namespace starting from the local and
# ending in the global.
@@ -203,7 +231,6 @@ proc msgcat::mc {src args} {
variable Msgs
variable Loclist
- set ns [uplevel 1 [list ::namespace current]]
set loclist [PackagePreferences $ns]
set nscur $ns
@@ -219,7 +246,7 @@ proc msgcat::mc {src args} {
# call package local or default unknown command
set args [linsert $args 0 [lindex $loclist 0] $src]
switch -exact -- [Invoke unknowncmd $args $ns result 1] {
- 0 { return [uplevel 1 [linsert $args 0 [namespace origin mcunknown]]] }
+ 0 { tailcall mcunknown {*}$args }
1 { return [DefaultUnknown {*}$args] }
default { return $result }
}
@@ -245,23 +272,31 @@ proc msgcat::mcexists {args} {
variable Loclist
variable PackageConfig
- set ns [uplevel 1 [list ::namespace current]]
- set loclist [PackagePreferences $ns]
-
while {[llength $args] != 1} {
set args [lassign $args option]
switch -glob -- $option {
- -exactnamespace { set exactnamespace 1 }
- -exactlocale { set loclist [lrange $loclist 0 0] }
+ -exactnamespace - -exactlocale { set $option 1 }
+ -namespace {
+ if {[llength $args] < 2} {
+ return -code error\
+ "Argument missing for switch \"-namespace\""
+ }
+ set args [lassign $args ns]
+ }
-* { return -code error "unknown option \"$option\"" }
default {
return -code error "wrong # args: should be\
\"[lindex [info level 0] 0] ?-exactnamespace?\
- ?-exactlocale? src\""
+ ?-exactlocale? ?-namespace ns? src\""
}
}
}
set src [lindex $args 0]
+
+ if {![info exists ns]} { set ns [PackageNamespaceGet] }
+
+ set loclist [PackagePreferences $ns]
+ if {[info exists -exactlocale]} { set loclist [lrange $loclist 0 0] }
while {$ns ne ""} {
foreach loc $loclist {
@@ -269,7 +304,7 @@ proc msgcat::mcexists {args} {
return 1
}
}
- if {[info exists exactnamespace]} {return 0}
+ if {[info exists -exactnamespace]} {return 0}
set ns [namespace parent $ns]
}
return 0
@@ -303,32 +338,27 @@ proc msgcat::mclocale {args} {
return -code error "invalid newLocale value \"$newLocale\":\
could be path to unsafe code."
}
- if {[lindex $Loclist 0] ne $newLocale} {
- set Loclist [GetPreferences $newLocale]
-
- # locale not loaded jet
- LoadAll $Loclist
- # Invoke callback
- Invoke changecmd $Loclist
- }
+ mcpreferences {*}[mcutil getpreferences $newLocale]
}
return [lindex $Loclist 0]
}
-# msgcat::GetPreferences --
+# msgcat::mcutil::getpreferences --
#
# Get list of locales from a locale.
# The first element is always the lowercase locale.
# Other elements have one component separated by "_" less.
# Multiple "_" are seen as one separator: de__ch_spec de__ch de {}
#
+# This method is part of the ensemble mcutil
+#
# Arguments:
# Locale.
#
# Results:
# Locale list
-proc msgcat::GetPreferences {locale} {
+proc msgcat::mcutil::getpreferences {locale} {
set locale [string tolower $locale]
set loclist [list $locale]
while {-1 !=[set pos [string last "_" $locale]]} {
@@ -349,16 +379,51 @@ proc msgcat::GetPreferences {locale} {
# most preferred to least preferred.
#
# Arguments:
-# None.
+# New location list
#
# Results:
# Returns an ordered list of the locales preferred by the user.
-proc msgcat::mcpreferences {} {
+proc msgcat::mcpreferences {args} {
variable Loclist
+
+ if {[llength $args] > 0} {
+ # args is the new loclist
+ if {![ListEqualString $args $Loclist]} {
+ set Loclist $args
+
+ # locale not loaded jet
+ LoadAll $Loclist
+ # Invoke callback
+ Invoke changecmd $Loclist
+ }
+ }
return $Loclist
}
+# msgcat::ListStringEqual --
+#
+# Compare two strings for equal string contents
+#
+# Arguments:
+# list1 first list
+# list2 second list
+#
+# Results:
+# 1 if lists of strings are identical, 0 otherwise
+
+proc msgcat::ListEqualString {list1 list2} {
+ if {[llength $list1] != [llength $list2]} {
+ return 0
+ }
+ foreach item1 $list1 item2 $list2 {
+ if {$item1 ne $item2} {
+ return 0
+ }
+ }
+ return 1
+}
+
# msgcat::mcloadedlocales --
#
# Get or change the list of currently loaded default locales
@@ -442,7 +507,7 @@ proc msgcat::mcloadedlocales {subcommand} {
# Results:
# Empty string, if not stated differently for the subcommand
-proc msgcat::mcpackagelocale {subcommand {locale ""}} {
+proc msgcat::mcpackagelocale {subcommand args} {
# todo: implement using an ensemble
variable Loclist
variable LoadedLocales
@@ -450,27 +515,39 @@ proc msgcat::mcpackagelocale {subcommand {locale ""}} {
variable PackageConfig
# Check option
# check if required item is exactly provided
- if {[llength [info level 0]] == 2} {
- # locale not given
- unset locale
- } else {
- # locale given
- if {$subcommand in
- {"get" "isset" "unset" "preferences" "loaded" "clear"} } {
- return -code error "wrong # args: should be\
- \"[lrange [info level 0] 0 1]\""
- }
- set locale [string tolower $locale]
+ if { [llength $args] > 0
+ && $subcommand in {"get" "isset" "unset" "loaded" "clear"} } {
+ return -code error "wrong # args: should be\
+ \"[lrange [info level 0] 0 1]\""
}
- set ns [uplevel 1 {::namespace current}]
+ set ns [PackageNamespaceGet]
switch -exact -- $subcommand {
get { return [lindex [PackagePreferences $ns] 0] }
- preferences { return [PackagePreferences $ns] }
loaded { return [PackageLocales $ns] }
- present { return [expr {$locale in [PackageLocales $ns]} ]}
+ present {
+ if {[llength $args] != 1} {
+ return -code error "wrong # args: should be\
+ \"[lrange [info level 0] 0 1] locale\""
+ }
+ return [expr {[string tolower [lindex $args 0]]
+ in [PackageLocales $ns]} ]
+ }
isset { return [dict exists $PackageConfig loclist $ns] }
- set { # set a package locale or add a package locale
+ set - preferences {
+ # set a package locale or add a package locale
+ set fSet [expr {$subcommand eq "set"}]
+
+ # Check parameter
+ if {$fSet && 1 < [llength $args] } {
+ return -code error "wrong # args: should be\
+ \"[lrange [info level 0] 0 1] ?locale?\""
+ }
+
+ # > Return preferences if no parameter
+ if {!$fSet && 0 == [llength $args] } {
+ return [PackagePreferences $ns]
+ }
# Copy the default locale if no package locale set so far
if {![dict exists $PackageConfig loclist $ns]} {
@@ -478,25 +555,43 @@ proc msgcat::mcpackagelocale {subcommand {locale ""}} {
dict set PackageConfig loadedlocales $ns $LoadedLocales
}
- # Check if changed
- set loclist [dict get $PackageConfig loclist $ns]
- if {! [info exists locale] || $locale eq [lindex $loclist 0] } {
- return [lindex $loclist 0]
+ # No argument for set: return current package locale
+ # The difference to no argument and subcommand "preferences" is,
+ # that "preferences" does not set the package locale property.
+ # This case is processed above, so no check for fSet here
+ if { 0 == [llength $args] } {
+ return [lindex [dict get $PackageConfig loclist $ns] 0]
+ }
+
+ # Get new loclist
+ if {$fSet} {
+ set loclist [mcutil getpreferences [lindex $args 0]]
+ } else {
+ set loclist $args
+ }
+
+ # Check if not changed to return imediately
+ if { [ListEqualString $loclist\
+ [dict get $PackageConfig loclist $ns]] } {
+ if {$fSet} {
+ return [lindex $loclist 0]
+ }
+ return $loclist
}
# Change loclist
- set loclist [GetPreferences $locale]
- set locale [lindex $loclist 0]
dict set PackageConfig loclist $ns $loclist
# load eventual missing locales
set loadedLocales [dict get $PackageConfig loadedlocales $ns]
- if {$locale in $loadedLocales} { return $locale }
set loadLocales [ListComplement $loadedLocales $loclist]
dict set PackageConfig loadedlocales $ns\
[concat $loadedLocales $loadLocales]
Load $ns $loadLocales
- return $locale
+ if {$fSet} {
+ return [lindex $loclist 0]
+ }
+ return $loclist
}
clear { # Remove all locales not contained in Loclist
if {![dict exists $PackageConfig loclist $ns]} {
@@ -551,7 +646,7 @@ proc msgcat::mcforgetpackage {} {
# todo: this may be implemented using an ensemble
variable PackageConfig
variable Msgs
- set ns [uplevel 1 {::namespace current}]
+ set ns [PackageNamespaceGet]
# Remove MC items
dict unset Msgs $ns
# Remove config items
@@ -561,6 +656,15 @@ proc msgcat::mcforgetpackage {} {
return
}
+# msgcat::mcgetmynamespace --
+#
+# Return the package namespace of the caller
+# This consideres to be called from a class or object.
+
+proc msgcat::mcpackagenamespaceget {} {
+ return [PackageNamespaceGet]
+}
+
# msgcat::mcpackageconfig --
#
# Get or modify the per caller namespace (e.g. packages) config options.
@@ -616,7 +720,7 @@ proc msgcat::mcforgetpackage {} {
proc msgcat::mcpackageconfig {subcommand option {value ""}} {
variable PackageConfig
# get namespace
- set ns [uplevel 1 {::namespace current}]
+ set ns [PackageNamespaceGet]
if {$option ni {"mcfolder" "loadcmd" "changecmd" "unknowncmd"}} {
return -code error "bad option \"$option\": must be mcfolder, loadcmd,\
@@ -756,8 +860,7 @@ proc msgcat::ListComplement {list1 list2 {inlistname ""}} {
# Returns the number of message catalogs that were loaded.
proc msgcat::mcload {langdir} {
- return [uplevel 1 [list\
- [namespace origin mcpackageconfig] set mcfolder $langdir]]
+ tailcall mcpackageconfig set mcfolder $langdir
}
# msgcat::LoadAll --
@@ -923,7 +1026,7 @@ proc msgcat::mcset {locale src {dest ""}} {
set dest $src
}
- set ns [uplevel 1 [list ::namespace current]]
+ set ns [PackageNamespaceGet]
set locale [string tolower $locale]
@@ -951,7 +1054,7 @@ proc msgcat::mcflset {src {dest ""}} {
return -code error "must only be used inside a message catalog loaded\
with ::msgcat::mcload"
}
- return [uplevel 1 [list [namespace origin mcset] $FileLocale $src $dest]]
+ tailcall mcset $FileLocale $src $dest
}
# msgcat::mcmset --
@@ -975,7 +1078,7 @@ proc msgcat::mcmset {locale pairs} {
}
set locale [string tolower $locale]
- set ns [uplevel 1 [list ::namespace current]]
+ set ns [PackageNamespaceGet]
foreach {src dest} $pairs {
dict set Msgs $ns $locale $src $dest
@@ -1002,7 +1105,7 @@ proc msgcat::mcflmset {pairs} {
return -code error "must only be used inside a message catalog loaded\
with ::msgcat::mcload"
}
- return [uplevel 1 [list [namespace origin mcmset] $FileLocale $pairs]]
+ tailcal mcmset $FileLocale $pairs
}
# msgcat::mcunknown --
@@ -1024,7 +1127,7 @@ proc msgcat::mcflmset {pairs} {
# Returns the translated value.
proc msgcat::mcunknown {args} {
- return [uplevel 1 [list [namespace origin DefaultUnknown] {*}$args]]
+ tailcall DefaultUnknown {*}$args
}
# msgcat::DefaultUnknown --
@@ -1067,8 +1170,9 @@ proc msgcat::DefaultUnknown {locale src args} {
proc msgcat::mcmax {args} {
set max 0
+ set ns [PackageNamespaceGet]
foreach string $args {
- set translated [uplevel 1 [list [namespace origin mc] $string]]
+ set translated [uplevel 1 [list [namespace origin mcn] $ns $string]]
set len [string length $translated]
if {$len>$max} {
set max $len
@@ -1079,7 +1183,7 @@ proc msgcat::mcmax {args} {
# Convert the locale values stored in environment variables to a form
# suitable for passing to [mclocale]
-proc msgcat::ConvertLocale {value} {
+proc msgcat::mcutil::ConvertLocale {value} {
# Assume $value is of form: $language[_$territory][.$codeset][@modifier]
# Convert to form: $language[_$territory][_$modifier]
#
@@ -1106,8 +1210,40 @@ proc msgcat::ConvertLocale {value} {
return $ret
}
+# helper function to find package namespace of stack-frame -2
+# There are 4 possibilities:
+# - called from a proc
+# - called within a class definition script
+# - called from an class defined oo object
+# - called from a classless oo object
+proc ::msgcat::PackageNamespaceGet {} {
+ uplevel 2 {
+ # Check self namespace to determine environment
+ switch -exact -- [namespace which self] {
+ {::oo::define::self} {
+ # We are within a class definition
+ return [namespace qualifiers [self]]
+ }
+ {::oo::Helpers::self} {
+ # We are within an object
+ set Class [info object class [self]]
+ # Check for classless defined object
+ if {$Class eq {::oo::object}} {
+ return [namespace qualifiers [self]]
+ }
+ # Class defined object
+ return [namespace qualifiers $Class]
+ }
+ default {
+ # Not in object environment
+ return [namespace current]
+ }
+ }
+ }
+}
+
# Initialize the default locale
-proc msgcat::Init {} {
+proc msgcat::mcutil::getsystemlocale {} {
global env
#
@@ -1115,10 +1251,8 @@ proc msgcat::Init {} {
#
foreach varName {LC_ALL LC_MESSAGES LANG} {
if {[info exists env($varName)] && ("" ne $env($varName))} {
- if {![catch {
- mclocale [ConvertLocale $env($varName)]
- }]} {
- return
+ if {![catch { ConvertLocale $env($varName) } locale]} {
+ return $locale
}
}
}
@@ -1126,10 +1260,8 @@ proc msgcat::Init {} {
# On Darwin, fallback to current CFLocale identifier if available.
#
if {[info exists ::tcl::mac::locale] && $::tcl::mac::locale ne ""} {
- if {![catch {
- mclocale [ConvertLocale $::tcl::mac::locale]
- }]} {
- return
+ if {![catch { ConvertLocale $::tcl::mac::locale } locale]} {
+ return $locale
}
}
#
@@ -1138,8 +1270,7 @@ proc msgcat::Init {} {
#
if {([info sharedlibextension] ne ".dll")
|| [catch {package require registry}]} {
- mclocale C
- return
+ return C
}
#
# On Windows or Cygwin, try to set locale depending on registry
@@ -1170,8 +1301,8 @@ proc msgcat::Init {} {
if {[dict exists $modifierDict $script]} {
append locale @ [dict get $modifierDict $script]
}
- if {![catch {mclocale [ConvertLocale $locale]}]} {
- return
+ if {![catch {ConvertLocale $locale} locale]} {
+ return $locale
}
}
}
@@ -1180,8 +1311,7 @@ proc msgcat::Init {} {
if {[catch {
set locale [registry get $key "locale"]
}]} {
- mclocale C
- return
+ return C
}
#
# Keep trying to match against smaller and smaller suffixes
@@ -1196,15 +1326,15 @@ proc msgcat::Init {} {
set locale [string tolower $locale]
while {[string length $locale]} {
if {![catch {
- mclocale [ConvertLocale [dict get $WinRegToISO639 $locale]]
- }]} {
- return
+ ConvertLocale [dict get $WinRegToISO639 $locale]
+ } localeOut]} {
+ return $localeOut
}
set locale [string range $locale 1 end]
}
#
# No translation known. Fall back on "C" locale
#
- mclocale C
+ return C
}
-msgcat::Init
+msgcat::mclocale [msgcat::mcutil getsystemlocale]
diff --git a/library/msgcat/pkgIndex.tcl b/library/msgcat/pkgIndex.tcl
index 72c5dc0..3309a30 100644
--- a/library/msgcat/pkgIndex.tcl
+++ b/library/msgcat/pkgIndex.tcl
@@ -1,2 +1,2 @@
-if {![package vsatisfies [package provide Tcl] 8.5-]} {return}
-package ifneeded msgcat 1.6.1 [list source [file join $dir msgcat.tcl]]
+if {![package vsatisfies [package provide Tcl] 8.7-]} {return}
+package ifneeded msgcat 1.7.0 [list source [file join $dir msgcat.tcl]]
diff --git a/library/tzdata/Africa/Sao_Tome b/library/tzdata/Africa/Sao_Tome
index 078591d..fe08d89 100644
--- a/library/tzdata/Africa/Sao_Tome
+++ b/library/tzdata/Africa/Sao_Tome
@@ -1,5 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Africa/Abidjan)]} {
- LoadTimeZoneFile Africa/Abidjan
+
+set TZData(:Africa/Sao_Tome) {
+ {-9223372036854775808 1616 0 LMT}
+ {-2713912016 -2205 0 LMT}
+ {-1830381795 0 0 GMT}
+ {1514768400 3600 0 WAT}
}
-set TZData(:Africa/Sao_Tome) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/America/Campo_Grande b/library/tzdata/America/Campo_Grande
index 77cb4d1..f8bfb67 100644
--- a/library/tzdata/America/Campo_Grande
+++ b/library/tzdata/America/Campo_Grande
@@ -91,167 +91,167 @@ set TZData(:America/Campo_Grande) {
{1487473200 -14400 0 -04}
{1508040000 -10800 1 -03}
{1518922800 -14400 0 -04}
- {1540094400 -10800 1 -03}
+ {1541304000 -10800 1 -03}
{1550372400 -14400 0 -04}
- {1571544000 -10800 1 -03}
+ {1572753600 -10800 1 -03}
{1581822000 -14400 0 -04}
- {1602993600 -10800 1 -03}
+ {1604203200 -10800 1 -03}
{1613876400 -14400 0 -04}
- {1634443200 -10800 1 -03}
+ {1636257600 -10800 1 -03}
{1645326000 -14400 0 -04}
- {1665892800 -10800 1 -03}
+ {1667707200 -10800 1 -03}
{1677380400 -14400 0 -04}
- {1697342400 -10800 1 -03}
+ {1699156800 -10800 1 -03}
{1708225200 -14400 0 -04}
- {1729396800 -10800 1 -03}
+ {1730606400 -10800 1 -03}
{1739674800 -14400 0 -04}
- {1760846400 -10800 1 -03}
+ {1762056000 -10800 1 -03}
{1771729200 -14400 0 -04}
- {1792296000 -10800 1 -03}
+ {1793505600 -10800 1 -03}
{1803178800 -14400 0 -04}
- {1823745600 -10800 1 -03}
+ {1825560000 -10800 1 -03}
{1834628400 -14400 0 -04}
- {1855195200 -10800 1 -03}
+ {1857009600 -10800 1 -03}
{1866078000 -14400 0 -04}
- {1887249600 -10800 1 -03}
+ {1888459200 -10800 1 -03}
{1897527600 -14400 0 -04}
- {1918699200 -10800 1 -03}
+ {1919908800 -10800 1 -03}
{1928977200 -14400 0 -04}
- {1950148800 -10800 1 -03}
+ {1951358400 -10800 1 -03}
{1960426800 -14400 0 -04}
- {1981598400 -10800 1 -03}
+ {1983412800 -10800 1 -03}
{1992481200 -14400 0 -04}
- {2013048000 -10800 1 -03}
+ {2014862400 -10800 1 -03}
{2024535600 -14400 0 -04}
- {2044497600 -10800 1 -03}
+ {2046312000 -10800 1 -03}
{2055380400 -14400 0 -04}
- {2076552000 -10800 1 -03}
+ {2077761600 -10800 1 -03}
{2086830000 -14400 0 -04}
- {2108001600 -10800 1 -03}
+ {2109211200 -10800 1 -03}
{2118884400 -14400 0 -04}
- {2139451200 -10800 1 -03}
+ {2140660800 -10800 1 -03}
{2150334000 -14400 0 -04}
- {2170900800 -10800 1 -03}
+ {2172715200 -10800 1 -03}
{2181783600 -14400 0 -04}
- {2202350400 -10800 1 -03}
+ {2204164800 -10800 1 -03}
{2213233200 -14400 0 -04}
- {2234404800 -10800 1 -03}
+ {2235614400 -10800 1 -03}
{2244682800 -14400 0 -04}
- {2265854400 -10800 1 -03}
+ {2267064000 -10800 1 -03}
{2276132400 -14400 0 -04}
- {2297304000 -10800 1 -03}
+ {2298513600 -10800 1 -03}
{2307582000 -14400 0 -04}
- {2328753600 -10800 1 -03}
+ {2329963200 -10800 1 -03}
{2339636400 -14400 0 -04}
- {2360203200 -10800 1 -03}
+ {2362017600 -10800 1 -03}
{2371086000 -14400 0 -04}
- {2391652800 -10800 1 -03}
+ {2393467200 -10800 1 -03}
{2402535600 -14400 0 -04}
- {2423707200 -10800 1 -03}
+ {2424916800 -10800 1 -03}
{2433985200 -14400 0 -04}
- {2455156800 -10800 1 -03}
+ {2456366400 -10800 1 -03}
{2465434800 -14400 0 -04}
- {2486606400 -10800 1 -03}
+ {2487816000 -10800 1 -03}
{2497489200 -14400 0 -04}
- {2518056000 -10800 1 -03}
+ {2519870400 -10800 1 -03}
{2528938800 -14400 0 -04}
- {2549505600 -10800 1 -03}
+ {2551320000 -10800 1 -03}
{2560388400 -14400 0 -04}
- {2580955200 -10800 1 -03}
+ {2582769600 -10800 1 -03}
{2591838000 -14400 0 -04}
- {2613009600 -10800 1 -03}
+ {2614219200 -10800 1 -03}
{2623287600 -14400 0 -04}
- {2644459200 -10800 1 -03}
+ {2645668800 -10800 1 -03}
{2654737200 -14400 0 -04}
- {2675908800 -10800 1 -03}
+ {2677118400 -10800 1 -03}
{2686791600 -14400 0 -04}
- {2707358400 -10800 1 -03}
+ {2709172800 -10800 1 -03}
{2718241200 -14400 0 -04}
- {2738808000 -10800 1 -03}
+ {2740622400 -10800 1 -03}
{2749690800 -14400 0 -04}
- {2770862400 -10800 1 -03}
+ {2772072000 -10800 1 -03}
{2781140400 -14400 0 -04}
- {2802312000 -10800 1 -03}
+ {2803521600 -10800 1 -03}
{2812590000 -14400 0 -04}
- {2833761600 -10800 1 -03}
+ {2834971200 -10800 1 -03}
{2844039600 -14400 0 -04}
- {2865211200 -10800 1 -03}
+ {2867025600 -10800 1 -03}
{2876094000 -14400 0 -04}
- {2896660800 -10800 1 -03}
+ {2898475200 -10800 1 -03}
{2907543600 -14400 0 -04}
- {2928110400 -10800 1 -03}
+ {2929924800 -10800 1 -03}
{2938993200 -14400 0 -04}
- {2960164800 -10800 1 -03}
+ {2961374400 -10800 1 -03}
{2970442800 -14400 0 -04}
- {2991614400 -10800 1 -03}
+ {2992824000 -10800 1 -03}
{3001892400 -14400 0 -04}
- {3023064000 -10800 1 -03}
+ {3024273600 -10800 1 -03}
{3033946800 -14400 0 -04}
- {3054513600 -10800 1 -03}
+ {3056328000 -10800 1 -03}
{3065396400 -14400 0 -04}
- {3085963200 -10800 1 -03}
+ {3087777600 -10800 1 -03}
{3096846000 -14400 0 -04}
- {3118017600 -10800 1 -03}
+ {3119227200 -10800 1 -03}
{3128295600 -14400 0 -04}
- {3149467200 -10800 1 -03}
+ {3150676800 -10800 1 -03}
{3159745200 -14400 0 -04}
- {3180916800 -10800 1 -03}
+ {3182126400 -10800 1 -03}
{3191194800 -14400 0 -04}
- {3212366400 -10800 1 -03}
+ {3213576000 -10800 1 -03}
{3223249200 -14400 0 -04}
- {3243816000 -10800 1 -03}
+ {3245630400 -10800 1 -03}
{3254698800 -14400 0 -04}
- {3275265600 -10800 1 -03}
+ {3277080000 -10800 1 -03}
{3286148400 -14400 0 -04}
- {3307320000 -10800 1 -03}
+ {3308529600 -10800 1 -03}
{3317598000 -14400 0 -04}
- {3338769600 -10800 1 -03}
+ {3339979200 -10800 1 -03}
{3349047600 -14400 0 -04}
- {3370219200 -10800 1 -03}
+ {3371428800 -10800 1 -03}
{3381102000 -14400 0 -04}
- {3401668800 -10800 1 -03}
+ {3403483200 -10800 1 -03}
{3412551600 -14400 0 -04}
- {3433118400 -10800 1 -03}
+ {3434932800 -10800 1 -03}
{3444001200 -14400 0 -04}
- {3464568000 -10800 1 -03}
+ {3466382400 -10800 1 -03}
{3475450800 -14400 0 -04}
- {3496622400 -10800 1 -03}
+ {3497832000 -10800 1 -03}
{3506900400 -14400 0 -04}
- {3528072000 -10800 1 -03}
+ {3529281600 -10800 1 -03}
{3538350000 -14400 0 -04}
- {3559521600 -10800 1 -03}
+ {3560731200 -10800 1 -03}
{3570404400 -14400 0 -04}
- {3590971200 -10800 1 -03}
+ {3592785600 -10800 1 -03}
{3601854000 -14400 0 -04}
- {3622420800 -10800 1 -03}
+ {3624235200 -10800 1 -03}
{3633303600 -14400 0 -04}
- {3654475200 -10800 1 -03}
+ {3655684800 -10800 1 -03}
{3664753200 -14400 0 -04}
- {3685924800 -10800 1 -03}
+ {3687134400 -10800 1 -03}
{3696202800 -14400 0 -04}
- {3717374400 -10800 1 -03}
+ {3718584000 -10800 1 -03}
{3727652400 -14400 0 -04}
- {3748824000 -10800 1 -03}
+ {3750638400 -10800 1 -03}
{3759706800 -14400 0 -04}
- {3780273600 -10800 1 -03}
+ {3782088000 -10800 1 -03}
{3791156400 -14400 0 -04}
- {3811723200 -10800 1 -03}
+ {3813537600 -10800 1 -03}
{3822606000 -14400 0 -04}
- {3843777600 -10800 1 -03}
+ {3844987200 -10800 1 -03}
{3854055600 -14400 0 -04}
- {3875227200 -10800 1 -03}
+ {3876436800 -10800 1 -03}
{3885505200 -14400 0 -04}
- {3906676800 -10800 1 -03}
+ {3907886400 -10800 1 -03}
{3917559600 -14400 0 -04}
- {3938126400 -10800 1 -03}
+ {3939940800 -10800 1 -03}
{3949009200 -14400 0 -04}
- {3969576000 -10800 1 -03}
+ {3971390400 -10800 1 -03}
{3980458800 -14400 0 -04}
- {4001630400 -10800 1 -03}
+ {4002840000 -10800 1 -03}
{4011908400 -14400 0 -04}
- {4033080000 -10800 1 -03}
+ {4034289600 -10800 1 -03}
{4043358000 -14400 0 -04}
- {4064529600 -10800 1 -03}
+ {4065739200 -10800 1 -03}
{4074807600 -14400 0 -04}
- {4095979200 -10800 1 -03}
+ {4097188800 -10800 1 -03}
}
diff --git a/library/tzdata/America/Cuiaba b/library/tzdata/America/Cuiaba
index 57cd38c..69acddb 100644
--- a/library/tzdata/America/Cuiaba
+++ b/library/tzdata/America/Cuiaba
@@ -91,167 +91,167 @@ set TZData(:America/Cuiaba) {
{1487473200 -14400 0 -04}
{1508040000 -10800 1 -03}
{1518922800 -14400 0 -04}
- {1540094400 -10800 1 -03}
+ {1541304000 -10800 1 -03}
{1550372400 -14400 0 -04}
- {1571544000 -10800 1 -03}
+ {1572753600 -10800 1 -03}
{1581822000 -14400 0 -04}
- {1602993600 -10800 1 -03}
+ {1604203200 -10800 1 -03}
{1613876400 -14400 0 -04}
- {1634443200 -10800 1 -03}
+ {1636257600 -10800 1 -03}
{1645326000 -14400 0 -04}
- {1665892800 -10800 1 -03}
+ {1667707200 -10800 1 -03}
{1677380400 -14400 0 -04}
- {1697342400 -10800 1 -03}
+ {1699156800 -10800 1 -03}
{1708225200 -14400 0 -04}
- {1729396800 -10800 1 -03}
+ {1730606400 -10800 1 -03}
{1739674800 -14400 0 -04}
- {1760846400 -10800 1 -03}
+ {1762056000 -10800 1 -03}
{1771729200 -14400 0 -04}
- {1792296000 -10800 1 -03}
+ {1793505600 -10800 1 -03}
{1803178800 -14400 0 -04}
- {1823745600 -10800 1 -03}
+ {1825560000 -10800 1 -03}
{1834628400 -14400 0 -04}
- {1855195200 -10800 1 -03}
+ {1857009600 -10800 1 -03}
{1866078000 -14400 0 -04}
- {1887249600 -10800 1 -03}
+ {1888459200 -10800 1 -03}
{1897527600 -14400 0 -04}
- {1918699200 -10800 1 -03}
+ {1919908800 -10800 1 -03}
{1928977200 -14400 0 -04}
- {1950148800 -10800 1 -03}
+ {1951358400 -10800 1 -03}
{1960426800 -14400 0 -04}
- {1981598400 -10800 1 -03}
+ {1983412800 -10800 1 -03}
{1992481200 -14400 0 -04}
- {2013048000 -10800 1 -03}
+ {2014862400 -10800 1 -03}
{2024535600 -14400 0 -04}
- {2044497600 -10800 1 -03}
+ {2046312000 -10800 1 -03}
{2055380400 -14400 0 -04}
- {2076552000 -10800 1 -03}
+ {2077761600 -10800 1 -03}
{2086830000 -14400 0 -04}
- {2108001600 -10800 1 -03}
+ {2109211200 -10800 1 -03}
{2118884400 -14400 0 -04}
- {2139451200 -10800 1 -03}
+ {2140660800 -10800 1 -03}
{2150334000 -14400 0 -04}
- {2170900800 -10800 1 -03}
+ {2172715200 -10800 1 -03}
{2181783600 -14400 0 -04}
- {2202350400 -10800 1 -03}
+ {2204164800 -10800 1 -03}
{2213233200 -14400 0 -04}
- {2234404800 -10800 1 -03}
+ {2235614400 -10800 1 -03}
{2244682800 -14400 0 -04}
- {2265854400 -10800 1 -03}
+ {2267064000 -10800 1 -03}
{2276132400 -14400 0 -04}
- {2297304000 -10800 1 -03}
+ {2298513600 -10800 1 -03}
{2307582000 -14400 0 -04}
- {2328753600 -10800 1 -03}
+ {2329963200 -10800 1 -03}
{2339636400 -14400 0 -04}
- {2360203200 -10800 1 -03}
+ {2362017600 -10800 1 -03}
{2371086000 -14400 0 -04}
- {2391652800 -10800 1 -03}
+ {2393467200 -10800 1 -03}
{2402535600 -14400 0 -04}
- {2423707200 -10800 1 -03}
+ {2424916800 -10800 1 -03}
{2433985200 -14400 0 -04}
- {2455156800 -10800 1 -03}
+ {2456366400 -10800 1 -03}
{2465434800 -14400 0 -04}
- {2486606400 -10800 1 -03}
+ {2487816000 -10800 1 -03}
{2497489200 -14400 0 -04}
- {2518056000 -10800 1 -03}
+ {2519870400 -10800 1 -03}
{2528938800 -14400 0 -04}
- {2549505600 -10800 1 -03}
+ {2551320000 -10800 1 -03}
{2560388400 -14400 0 -04}
- {2580955200 -10800 1 -03}
+ {2582769600 -10800 1 -03}
{2591838000 -14400 0 -04}
- {2613009600 -10800 1 -03}
+ {2614219200 -10800 1 -03}
{2623287600 -14400 0 -04}
- {2644459200 -10800 1 -03}
+ {2645668800 -10800 1 -03}
{2654737200 -14400 0 -04}
- {2675908800 -10800 1 -03}
+ {2677118400 -10800 1 -03}
{2686791600 -14400 0 -04}
- {2707358400 -10800 1 -03}
+ {2709172800 -10800 1 -03}
{2718241200 -14400 0 -04}
- {2738808000 -10800 1 -03}
+ {2740622400 -10800 1 -03}
{2749690800 -14400 0 -04}
- {2770862400 -10800 1 -03}
+ {2772072000 -10800 1 -03}
{2781140400 -14400 0 -04}
- {2802312000 -10800 1 -03}
+ {2803521600 -10800 1 -03}
{2812590000 -14400 0 -04}
- {2833761600 -10800 1 -03}
+ {2834971200 -10800 1 -03}
{2844039600 -14400 0 -04}
- {2865211200 -10800 1 -03}
+ {2867025600 -10800 1 -03}
{2876094000 -14400 0 -04}
- {2896660800 -10800 1 -03}
+ {2898475200 -10800 1 -03}
{2907543600 -14400 0 -04}
- {2928110400 -10800 1 -03}
+ {2929924800 -10800 1 -03}
{2938993200 -14400 0 -04}
- {2960164800 -10800 1 -03}
+ {2961374400 -10800 1 -03}
{2970442800 -14400 0 -04}
- {2991614400 -10800 1 -03}
+ {2992824000 -10800 1 -03}
{3001892400 -14400 0 -04}
- {3023064000 -10800 1 -03}
+ {3024273600 -10800 1 -03}
{3033946800 -14400 0 -04}
- {3054513600 -10800 1 -03}
+ {3056328000 -10800 1 -03}
{3065396400 -14400 0 -04}
- {3085963200 -10800 1 -03}
+ {3087777600 -10800 1 -03}
{3096846000 -14400 0 -04}
- {3118017600 -10800 1 -03}
+ {3119227200 -10800 1 -03}
{3128295600 -14400 0 -04}
- {3149467200 -10800 1 -03}
+ {3150676800 -10800 1 -03}
{3159745200 -14400 0 -04}
- {3180916800 -10800 1 -03}
+ {3182126400 -10800 1 -03}
{3191194800 -14400 0 -04}
- {3212366400 -10800 1 -03}
+ {3213576000 -10800 1 -03}
{3223249200 -14400 0 -04}
- {3243816000 -10800 1 -03}
+ {3245630400 -10800 1 -03}
{3254698800 -14400 0 -04}
- {3275265600 -10800 1 -03}
+ {3277080000 -10800 1 -03}
{3286148400 -14400 0 -04}
- {3307320000 -10800 1 -03}
+ {3308529600 -10800 1 -03}
{3317598000 -14400 0 -04}
- {3338769600 -10800 1 -03}
+ {3339979200 -10800 1 -03}
{3349047600 -14400 0 -04}
- {3370219200 -10800 1 -03}
+ {3371428800 -10800 1 -03}
{3381102000 -14400 0 -04}
- {3401668800 -10800 1 -03}
+ {3403483200 -10800 1 -03}
{3412551600 -14400 0 -04}
- {3433118400 -10800 1 -03}
+ {3434932800 -10800 1 -03}
{3444001200 -14400 0 -04}
- {3464568000 -10800 1 -03}
+ {3466382400 -10800 1 -03}
{3475450800 -14400 0 -04}
- {3496622400 -10800 1 -03}
+ {3497832000 -10800 1 -03}
{3506900400 -14400 0 -04}
- {3528072000 -10800 1 -03}
+ {3529281600 -10800 1 -03}
{3538350000 -14400 0 -04}
- {3559521600 -10800 1 -03}
+ {3560731200 -10800 1 -03}
{3570404400 -14400 0 -04}
- {3590971200 -10800 1 -03}
+ {3592785600 -10800 1 -03}
{3601854000 -14400 0 -04}
- {3622420800 -10800 1 -03}
+ {3624235200 -10800 1 -03}
{3633303600 -14400 0 -04}
- {3654475200 -10800 1 -03}
+ {3655684800 -10800 1 -03}
{3664753200 -14400 0 -04}
- {3685924800 -10800 1 -03}
+ {3687134400 -10800 1 -03}
{3696202800 -14400 0 -04}
- {3717374400 -10800 1 -03}
+ {3718584000 -10800 1 -03}
{3727652400 -14400 0 -04}
- {3748824000 -10800 1 -03}
+ {3750638400 -10800 1 -03}
{3759706800 -14400 0 -04}
- {3780273600 -10800 1 -03}
+ {3782088000 -10800 1 -03}
{3791156400 -14400 0 -04}
- {3811723200 -10800 1 -03}
+ {3813537600 -10800 1 -03}
{3822606000 -14400 0 -04}
- {3843777600 -10800 1 -03}
+ {3844987200 -10800 1 -03}
{3854055600 -14400 0 -04}
- {3875227200 -10800 1 -03}
+ {3876436800 -10800 1 -03}
{3885505200 -14400 0 -04}
- {3906676800 -10800 1 -03}
+ {3907886400 -10800 1 -03}
{3917559600 -14400 0 -04}
- {3938126400 -10800 1 -03}
+ {3939940800 -10800 1 -03}
{3949009200 -14400 0 -04}
- {3969576000 -10800 1 -03}
+ {3971390400 -10800 1 -03}
{3980458800 -14400 0 -04}
- {4001630400 -10800 1 -03}
+ {4002840000 -10800 1 -03}
{4011908400 -14400 0 -04}
- {4033080000 -10800 1 -03}
+ {4034289600 -10800 1 -03}
{4043358000 -14400 0 -04}
- {4064529600 -10800 1 -03}
+ {4065739200 -10800 1 -03}
{4074807600 -14400 0 -04}
- {4095979200 -10800 1 -03}
+ {4097188800 -10800 1 -03}
}
diff --git a/library/tzdata/America/La_Paz b/library/tzdata/America/La_Paz
index a245afd..ea2f711 100644
--- a/library/tzdata/America/La_Paz
+++ b/library/tzdata/America/La_Paz
@@ -3,6 +3,6 @@
set TZData(:America/La_Paz) {
{-9223372036854775808 -16356 0 LMT}
{-2524505244 -16356 0 CMT}
- {-1205954844 -12756 1 BOST}
+ {-1205954844 -12756 1 BST}
{-1192307244 -14400 0 -04}
}
diff --git a/library/tzdata/America/Sao_Paulo b/library/tzdata/America/Sao_Paulo
index a61c638..93c524d 100644
--- a/library/tzdata/America/Sao_Paulo
+++ b/library/tzdata/America/Sao_Paulo
@@ -92,167 +92,167 @@ set TZData(:America/Sao_Paulo) {
{1487469600 -10800 0 -03}
{1508036400 -7200 1 -02}
{1518919200 -10800 0 -03}
- {1540090800 -7200 1 -02}
+ {1541300400 -7200 1 -02}
{1550368800 -10800 0 -03}
- {1571540400 -7200 1 -02}
+ {1572750000 -7200 1 -02}
{1581818400 -10800 0 -03}
- {1602990000 -7200 1 -02}
+ {1604199600 -7200 1 -02}
{1613872800 -10800 0 -03}
- {1634439600 -7200 1 -02}
+ {1636254000 -7200 1 -02}
{1645322400 -10800 0 -03}
- {1665889200 -7200 1 -02}
+ {1667703600 -7200 1 -02}
{1677376800 -10800 0 -03}
- {1697338800 -7200 1 -02}
+ {1699153200 -7200 1 -02}
{1708221600 -10800 0 -03}
- {1729393200 -7200 1 -02}
+ {1730602800 -7200 1 -02}
{1739671200 -10800 0 -03}
- {1760842800 -7200 1 -02}
+ {1762052400 -7200 1 -02}
{1771725600 -10800 0 -03}
- {1792292400 -7200 1 -02}
+ {1793502000 -7200 1 -02}
{1803175200 -10800 0 -03}
- {1823742000 -7200 1 -02}
+ {1825556400 -7200 1 -02}
{1834624800 -10800 0 -03}
- {1855191600 -7200 1 -02}
+ {1857006000 -7200 1 -02}
{1866074400 -10800 0 -03}
- {1887246000 -7200 1 -02}
+ {1888455600 -7200 1 -02}
{1897524000 -10800 0 -03}
- {1918695600 -7200 1 -02}
+ {1919905200 -7200 1 -02}
{1928973600 -10800 0 -03}
- {1950145200 -7200 1 -02}
+ {1951354800 -7200 1 -02}
{1960423200 -10800 0 -03}
- {1981594800 -7200 1 -02}
+ {1983409200 -7200 1 -02}
{1992477600 -10800 0 -03}
- {2013044400 -7200 1 -02}
+ {2014858800 -7200 1 -02}
{2024532000 -10800 0 -03}
- {2044494000 -7200 1 -02}
+ {2046308400 -7200 1 -02}
{2055376800 -10800 0 -03}
- {2076548400 -7200 1 -02}
+ {2077758000 -7200 1 -02}
{2086826400 -10800 0 -03}
- {2107998000 -7200 1 -02}
+ {2109207600 -7200 1 -02}
{2118880800 -10800 0 -03}
- {2139447600 -7200 1 -02}
+ {2140657200 -7200 1 -02}
{2150330400 -10800 0 -03}
- {2170897200 -7200 1 -02}
+ {2172711600 -7200 1 -02}
{2181780000 -10800 0 -03}
- {2202346800 -7200 1 -02}
+ {2204161200 -7200 1 -02}
{2213229600 -10800 0 -03}
- {2234401200 -7200 1 -02}
+ {2235610800 -7200 1 -02}
{2244679200 -10800 0 -03}
- {2265850800 -7200 1 -02}
+ {2267060400 -7200 1 -02}
{2276128800 -10800 0 -03}
- {2297300400 -7200 1 -02}
+ {2298510000 -7200 1 -02}
{2307578400 -10800 0 -03}
- {2328750000 -7200 1 -02}
+ {2329959600 -7200 1 -02}
{2339632800 -10800 0 -03}
- {2360199600 -7200 1 -02}
+ {2362014000 -7200 1 -02}
{2371082400 -10800 0 -03}
- {2391649200 -7200 1 -02}
+ {2393463600 -7200 1 -02}
{2402532000 -10800 0 -03}
- {2423703600 -7200 1 -02}
+ {2424913200 -7200 1 -02}
{2433981600 -10800 0 -03}
- {2455153200 -7200 1 -02}
+ {2456362800 -7200 1 -02}
{2465431200 -10800 0 -03}
- {2486602800 -7200 1 -02}
+ {2487812400 -7200 1 -02}
{2497485600 -10800 0 -03}
- {2518052400 -7200 1 -02}
+ {2519866800 -7200 1 -02}
{2528935200 -10800 0 -03}
- {2549502000 -7200 1 -02}
+ {2551316400 -7200 1 -02}
{2560384800 -10800 0 -03}
- {2580951600 -7200 1 -02}
+ {2582766000 -7200 1 -02}
{2591834400 -10800 0 -03}
- {2613006000 -7200 1 -02}
+ {2614215600 -7200 1 -02}
{2623284000 -10800 0 -03}
- {2644455600 -7200 1 -02}
+ {2645665200 -7200 1 -02}
{2654733600 -10800 0 -03}
- {2675905200 -7200 1 -02}
+ {2677114800 -7200 1 -02}
{2686788000 -10800 0 -03}
- {2707354800 -7200 1 -02}
+ {2709169200 -7200 1 -02}
{2718237600 -10800 0 -03}
- {2738804400 -7200 1 -02}
+ {2740618800 -7200 1 -02}
{2749687200 -10800 0 -03}
- {2770858800 -7200 1 -02}
+ {2772068400 -7200 1 -02}
{2781136800 -10800 0 -03}
- {2802308400 -7200 1 -02}
+ {2803518000 -7200 1 -02}
{2812586400 -10800 0 -03}
- {2833758000 -7200 1 -02}
+ {2834967600 -7200 1 -02}
{2844036000 -10800 0 -03}
- {2865207600 -7200 1 -02}
+ {2867022000 -7200 1 -02}
{2876090400 -10800 0 -03}
- {2896657200 -7200 1 -02}
+ {2898471600 -7200 1 -02}
{2907540000 -10800 0 -03}
- {2928106800 -7200 1 -02}
+ {2929921200 -7200 1 -02}
{2938989600 -10800 0 -03}
- {2960161200 -7200 1 -02}
+ {2961370800 -7200 1 -02}
{2970439200 -10800 0 -03}
- {2991610800 -7200 1 -02}
+ {2992820400 -7200 1 -02}
{3001888800 -10800 0 -03}
- {3023060400 -7200 1 -02}
+ {3024270000 -7200 1 -02}
{3033943200 -10800 0 -03}
- {3054510000 -7200 1 -02}
+ {3056324400 -7200 1 -02}
{3065392800 -10800 0 -03}
- {3085959600 -7200 1 -02}
+ {3087774000 -7200 1 -02}
{3096842400 -10800 0 -03}
- {3118014000 -7200 1 -02}
+ {3119223600 -7200 1 -02}
{3128292000 -10800 0 -03}
- {3149463600 -7200 1 -02}
+ {3150673200 -7200 1 -02}
{3159741600 -10800 0 -03}
- {3180913200 -7200 1 -02}
+ {3182122800 -7200 1 -02}
{3191191200 -10800 0 -03}
- {3212362800 -7200 1 -02}
+ {3213572400 -7200 1 -02}
{3223245600 -10800 0 -03}
- {3243812400 -7200 1 -02}
+ {3245626800 -7200 1 -02}
{3254695200 -10800 0 -03}
- {3275262000 -7200 1 -02}
+ {3277076400 -7200 1 -02}
{3286144800 -10800 0 -03}
- {3307316400 -7200 1 -02}
+ {3308526000 -7200 1 -02}
{3317594400 -10800 0 -03}
- {3338766000 -7200 1 -02}
+ {3339975600 -7200 1 -02}
{3349044000 -10800 0 -03}
- {3370215600 -7200 1 -02}
+ {3371425200 -7200 1 -02}
{3381098400 -10800 0 -03}
- {3401665200 -7200 1 -02}
+ {3403479600 -7200 1 -02}
{3412548000 -10800 0 -03}
- {3433114800 -7200 1 -02}
+ {3434929200 -7200 1 -02}
{3443997600 -10800 0 -03}
- {3464564400 -7200 1 -02}
+ {3466378800 -7200 1 -02}
{3475447200 -10800 0 -03}
- {3496618800 -7200 1 -02}
+ {3497828400 -7200 1 -02}
{3506896800 -10800 0 -03}
- {3528068400 -7200 1 -02}
+ {3529278000 -7200 1 -02}
{3538346400 -10800 0 -03}
- {3559518000 -7200 1 -02}
+ {3560727600 -7200 1 -02}
{3570400800 -10800 0 -03}
- {3590967600 -7200 1 -02}
+ {3592782000 -7200 1 -02}
{3601850400 -10800 0 -03}
- {3622417200 -7200 1 -02}
+ {3624231600 -7200 1 -02}
{3633300000 -10800 0 -03}
- {3654471600 -7200 1 -02}
+ {3655681200 -7200 1 -02}
{3664749600 -10800 0 -03}
- {3685921200 -7200 1 -02}
+ {3687130800 -7200 1 -02}
{3696199200 -10800 0 -03}
- {3717370800 -7200 1 -02}
+ {3718580400 -7200 1 -02}
{3727648800 -10800 0 -03}
- {3748820400 -7200 1 -02}
+ {3750634800 -7200 1 -02}
{3759703200 -10800 0 -03}
- {3780270000 -7200 1 -02}
+ {3782084400 -7200 1 -02}
{3791152800 -10800 0 -03}
- {3811719600 -7200 1 -02}
+ {3813534000 -7200 1 -02}
{3822602400 -10800 0 -03}
- {3843774000 -7200 1 -02}
+ {3844983600 -7200 1 -02}
{3854052000 -10800 0 -03}
- {3875223600 -7200 1 -02}
+ {3876433200 -7200 1 -02}
{3885501600 -10800 0 -03}
- {3906673200 -7200 1 -02}
+ {3907882800 -7200 1 -02}
{3917556000 -10800 0 -03}
- {3938122800 -7200 1 -02}
+ {3939937200 -7200 1 -02}
{3949005600 -10800 0 -03}
- {3969572400 -7200 1 -02}
+ {3971386800 -7200 1 -02}
{3980455200 -10800 0 -03}
- {4001626800 -7200 1 -02}
+ {4002836400 -7200 1 -02}
{4011904800 -10800 0 -03}
- {4033076400 -7200 1 -02}
+ {4034286000 -7200 1 -02}
{4043354400 -10800 0 -03}
- {4064526000 -7200 1 -02}
+ {4065735600 -7200 1 -02}
{4074804000 -10800 0 -03}
- {4095975600 -7200 1 -02}
+ {4097185200 -7200 1 -02}
}
diff --git a/library/tzdata/Asia/Tokyo b/library/tzdata/Asia/Tokyo
index 10add1c..790df0a 100644
--- a/library/tzdata/Asia/Tokyo
+++ b/library/tzdata/Asia/Tokyo
@@ -3,12 +3,12 @@
set TZData(:Asia/Tokyo) {
{-9223372036854775808 33539 0 LMT}
{-2587712400 32400 0 JST}
- {-683794800 36000 1 JDT}
- {-672393600 32400 0 JST}
- {-654764400 36000 1 JDT}
- {-640944000 32400 0 JST}
- {-620290800 36000 1 JDT}
- {-609494400 32400 0 JST}
- {-588841200 36000 1 JDT}
- {-578044800 32400 0 JST}
+ {-683802000 36000 1 JDT}
+ {-672314400 32400 0 JST}
+ {-654771600 36000 1 JDT}
+ {-640864800 32400 0 JST}
+ {-620298000 36000 1 JDT}
+ {-609415200 32400 0 JST}
+ {-588848400 36000 1 JDT}
+ {-577965600 32400 0 JST}
}