]> Cypherpunks repositories - gostls13.git/commitdiff
time: Support Irix 6 location for zoneinfo files.
authorIan Lance Taylor <iant@golang.org>
Mon, 25 Apr 2011 19:37:00 +0000 (12:37 -0700)
committerIan Lance Taylor <iant@golang.org>
Mon, 25 Apr 2011 19:37:00 +0000 (12:37 -0700)
R=rsc
CC=golang-dev
https://golang.org/cl/4440066

src/pkg/time/zoneinfo_unix.go

index 6685da7477b05f0d99754b5780e3083c3960cd68..42659ed606265ef631511f1ba0abdaf31c2f5d1a 100644 (file)
@@ -17,8 +17,6 @@ import (
 
 const (
        headerSize = 4 + 16 + 4*7
-       zoneDir    = "/usr/share/zoneinfo/"
-       zoneDir2   = "/usr/share/lib/zoneinfo/"
 )
 
 // Simple I/O interface to binary blob of data.
@@ -211,16 +209,22 @@ func setupZone() {
        // no $TZ means use the system default /etc/localtime.
        // $TZ="" means use UTC.
        // $TZ="foo" means use /usr/share/zoneinfo/foo.
+       // Many systems use /usr/share/zoneinfo, Solaris 2 has
+       // /usr/share/lib/zoneinfo, IRIX 6 has /usr/lib/locale/TZ.
+       zoneDirs := []string{"/usr/share/zoneinfo/",
+               "/usr/share/lib/zoneinfo/",
+               "/usr/lib/locale/TZ/"}
 
        tz, err := os.Getenverror("TZ")
        switch {
        case err == os.ENOENV:
                zones, _ = readinfofile("/etc/localtime")
        case len(tz) > 0:
-               var ok bool
-               zones, ok = readinfofile(zoneDir + tz)
-               if !ok {
-                       zones, _ = readinfofile(zoneDir2 + tz)
+               for _, zoneDir := range zoneDirs {
+                       var ok bool
+                       if zones, ok = readinfofile(zoneDir + tz); ok {
+                               break
+                       }
                }
        case len(tz) == 0:
                // do nothing: use UTC