diff options
Diffstat (limited to 'src/lib/time/zoneinfo.go')
-rw-r--r-- | src/lib/time/zoneinfo.go | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/lib/time/zoneinfo.go b/src/lib/time/zoneinfo.go index 577434c91..62f86499e 100644 --- a/src/lib/time/zoneinfo.go +++ b/src/lib/time/zoneinfo.go @@ -22,9 +22,10 @@ const ( zoneDir = "/usr/share/zoneinfo/"; ) +// Errors that can be generated recovering time zone information. var ( - BadZoneinfo = os.NewError("time: malformed zoneinfo"); - NoZoneinfo = os.NewError("time: unknown time zone") + badZoneinfo = os.NewError("time: malformed zoneinfo"); + noZoneinfo = os.NewError("time: unknown time zone") ) // Simple I/O interface to binary blob of data. @@ -92,13 +93,13 @@ func parseinfo(bytes []byte) (zt []zonetime, err *os.Error) { // 4-byte magic "TZif" if magic := d.read(4); string(magic) != "TZif" { - return nil, BadZoneinfo + return nil, badZoneinfo } // 1-byte version, then 15 bytes of padding var p []byte; if p = d.read(16); len(p) != 16 || p[0] != 0 && p[0] != '2' { - return nil, BadZoneinfo + return nil, badZoneinfo } vers := p[0]; @@ -121,7 +122,7 @@ func parseinfo(bytes []byte) (zt []zonetime, err *os.Error) { for i := 0; i < 6; i++ { nn, ok := d.big4(); if !ok { - return nil, BadZoneinfo + return nil, badZoneinfo } n[i] = int(nn); } @@ -150,7 +151,7 @@ func parseinfo(bytes []byte) (zt []zonetime, err *os.Error) { isutc := d.read(n[NUTCLocal]); if d.error { // ran out of data - return nil, BadZoneinfo + return nil, badZoneinfo } // If version == 2, the entire file repeats, this time using @@ -165,16 +166,16 @@ func parseinfo(bytes []byte) (zt []zonetime, err *os.Error) { var ok bool; var n uint32; if n, ok = zonedata.big4(); !ok { - return nil, BadZoneinfo + return nil, badZoneinfo } z[i].utcoff = int(n); var b byte; if b, ok = zonedata.byte(); !ok { - return nil, BadZoneinfo + return nil, badZoneinfo } z[i].isdst = b != 0; if b, ok = zonedata.byte(); !ok || int(b) >= len(abbrev) { - return nil, BadZoneinfo + return nil, badZoneinfo } z[i].name = byteString(abbrev[b:len(abbrev)]) } @@ -185,11 +186,11 @@ func parseinfo(bytes []byte) (zt []zonetime, err *os.Error) { var ok bool; var n uint32; if n, ok = txtimes.big4(); !ok { - return nil, BadZoneinfo + return nil, badZoneinfo } zt[i].time = int32(n); if int(txzones[i]) >= len(z) { - return nil, BadZoneinfo + return nil, badZoneinfo } zt[i].zone = &z[txzones[i]]; if i < len(isstd) { @@ -211,7 +212,7 @@ func readfile(name string, max int) (p []byte, err *os.Error) { n, err1 := io.Readn(fd, p); fd.Close(); if err1 == nil { // too long - return nil, BadZoneinfo; + return nil, badZoneinfo; } if err1 != io.ErrEOF { return nil, err1; @@ -251,7 +252,7 @@ func setupZone() { } } -func LookupTimezone(sec int64) (zone string, offset int, err *os.Error) { +func lookupTimezone(sec int64) (zone string, offset int, err *os.Error) { once.Do(setupZone); if zoneerr != nil || len(zones) == 0 { return "UTC", 0, zoneerr |