diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-03-02 20:01:37 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-03-02 20:01:37 +0000 |
commit | 501699af1603287b1b47ac450fd6eeb826aa76b1 (patch) | |
tree | 3eeb8918d39d675108073c8b76d6dd10586a608c /libgo/go/time/zoneinfo_plan9.go | |
parent | 34c5f21a387dc461042bafc3052ce6e1af786a77 (diff) | |
download | gcc-501699af1603287b1b47ac450fd6eeb826aa76b1.zip gcc-501699af1603287b1b47ac450fd6eeb826aa76b1.tar.gz gcc-501699af1603287b1b47ac450fd6eeb826aa76b1.tar.bz2 |
libgo: Update to weekly.2012-02-22 release.
From-SVN: r184819
Diffstat (limited to 'libgo/go/time/zoneinfo_plan9.go')
-rw-r--r-- | libgo/go/time/zoneinfo_plan9.go | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/libgo/go/time/zoneinfo_plan9.go b/libgo/go/time/zoneinfo_plan9.go index 9c052d4..6855238 100644 --- a/libgo/go/time/zoneinfo_plan9.go +++ b/libgo/go/time/zoneinfo_plan9.go @@ -8,11 +8,10 @@ package time import ( "errors" + "runtime" "syscall" ) -var badData = errors.New("malformed time zone information") - func isSpace(r rune) bool { return r == ' ' || r == '\t' || r == '\n' } @@ -51,7 +50,7 @@ func fields(s string) []string { return a } -func loadZoneData(s string) (l *Location, err error) { +func loadZoneDataPlan9(s string) (l *Location, err error) { f := fields(s) if len(f) < 4 { if len(f) == 2 && f[0] == "GMT" { @@ -112,33 +111,32 @@ func loadZoneData(s string) (l *Location, err error) { return l, nil } -func loadZoneFile(name string) (*Location, error) { +func loadZoneFilePlan9(name string) (*Location, error) { b, err := readFile(name) if err != nil { return nil, err } - return loadZoneData(string(b)) + return loadZoneDataPlan9(string(b)) } func initTestingZone() { - if z, err := loadZoneFile("/adm/timezone/US_Pacific"); err == nil { - localLoc = *z - return + z, err := loadLocation("America/Los_Angeles") + if err != nil { + panic("cannot load America/Los_Angeles for testing: " + err.Error()) } - - // Fall back to UTC. - localLoc.name = "UTC" + z.name = "Local" + localLoc = *z } func initLocal() { t, ok := syscall.Getenv("timezone") if ok { - if z, err := loadZoneData(t); err == nil { + if z, err := loadZoneDataPlan9(t); err == nil { localLoc = *z return } } else { - if z, err := loadZoneFile("/adm/timezone/local"); err == nil { + if z, err := loadZoneFilePlan9("/adm/timezone/local"); err == nil { localLoc = *z localLoc.name = "Local" return @@ -150,7 +148,8 @@ func initLocal() { } func loadLocation(name string) (*Location, error) { - if z, err := loadZoneFile("/adm/timezone/" + name); err == nil { + if z, err := loadZoneFile(runtime.GOROOT()+"/lib/time/zoneinfo.zip", name); err == nil { + z.name = name return z, nil } return nil, errors.New("unknown time zone " + name) |