summaryrefslogtreecommitdiff
path: root/vendor/modernc.org/libc
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/modernc.org/libc')
-rw-r--r--vendor/modernc.org/libc/libc.go21
-rw-r--r--vendor/modernc.org/libc/libc_darwin.go12
-rw-r--r--vendor/modernc.org/libc/libc_freebsd.go12
-rw-r--r--vendor/modernc.org/libc/libc_linux.go12
-rw-r--r--vendor/modernc.org/libc/libc_netbsd.go12
-rw-r--r--vendor/modernc.org/libc/libc_openbsd.go12
-rw-r--r--vendor/modernc.org/libc/libc_windows.go12
7 files changed, 28 insertions, 65 deletions
diff --git a/vendor/modernc.org/libc/libc.go b/vendor/modernc.org/libc/libc.go
index e1c00b0f2..01d6793a8 100644
--- a/vendor/modernc.org/libc/libc.go
+++ b/vendor/modernc.org/libc/libc.go
@@ -970,13 +970,24 @@ func Xatol(t *TLS, nptr uintptr) long {
}
}
-// time_t mktime(struct tm *tm);
-func Xmktime(t *TLS, ptm uintptr) time.Time_t {
- loc := gotime.Local
+func getLocalLocation() (loc *gotime.Location) {
+ loc = gotime.Local
if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, off)
+ zname := GoString(r)
+ zone, off := parseZone(zname)
+ loc = gotime.FixedZone(zone, -off)
+ loc2, _ := gotime.LoadLocation(zname)
+ if loc2 != nil {
+ loc = loc2
+ }
}
+ return loc
+
+}
+
+// time_t mktime(struct tm *tm);
+func Xmktime(t *TLS, ptm uintptr) time.Time_t {
+ loc := getLocalLocation()
tt := gotime.Date(
int((*time.Tm)(unsafe.Pointer(ptm)).Ftm_year+1900),
gotime.Month((*time.Tm)(unsafe.Pointer(ptm)).Ftm_mon+1),
diff --git a/vendor/modernc.org/libc/libc_darwin.go b/vendor/modernc.org/libc/libc_darwin.go
index 1dc5b9260..0ddc96e79 100644
--- a/vendor/modernc.org/libc/libc_darwin.go
+++ b/vendor/modernc.org/libc/libc_darwin.go
@@ -277,11 +277,7 @@ var localtime time.Tm
// struct tm *localtime(const time_t *timep);
func Xlocaltime(_ *TLS, timep uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
localtime.Ftm_sec = int32(t.Second())
@@ -298,11 +294,7 @@ func Xlocaltime(_ *TLS, timep uintptr) uintptr {
// struct tm *localtime_r(const time_t *timep, struct tm *result);
func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
(*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
diff --git a/vendor/modernc.org/libc/libc_freebsd.go b/vendor/modernc.org/libc/libc_freebsd.go
index 486f8ec45..96282190c 100644
--- a/vendor/modernc.org/libc/libc_freebsd.go
+++ b/vendor/modernc.org/libc/libc_freebsd.go
@@ -171,11 +171,7 @@ var localtime time.Tm
// struct tm *localtime(const time_t *timep);
func Xlocaltime(_ *TLS, timep uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
localtime.Ftm_sec = int32(t.Second())
@@ -192,11 +188,7 @@ func Xlocaltime(_ *TLS, timep uintptr) uintptr {
// struct tm *localtime_r(const time_t *timep, struct tm *result);
func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*unix.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
(*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
diff --git a/vendor/modernc.org/libc/libc_linux.go b/vendor/modernc.org/libc/libc_linux.go
index 1c2f48262..bc656f877 100644
--- a/vendor/modernc.org/libc/libc_linux.go
+++ b/vendor/modernc.org/libc/libc_linux.go
@@ -133,11 +133,7 @@ var localtime ctime.Tm
// struct tm *localtime(const time_t *timep);
func Xlocaltime(_ *TLS, timep uintptr) uintptr {
- loc := time.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = time.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*unix.Time_t)(unsafe.Pointer(timep))
t := time.Unix(int64(ut), 0).In(loc)
localtime.Ftm_sec = int32(t.Second())
@@ -154,11 +150,7 @@ func Xlocaltime(_ *TLS, timep uintptr) uintptr {
// struct tm *localtime_r(const time_t *timep, struct tm *result);
func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
- loc := time.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = time.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*unix.Time_t)(unsafe.Pointer(timep))
t := time.Unix(int64(ut), 0).In(loc)
(*ctime.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
diff --git a/vendor/modernc.org/libc/libc_netbsd.go b/vendor/modernc.org/libc/libc_netbsd.go
index 77a28cb5d..f4ed268fb 100644
--- a/vendor/modernc.org/libc/libc_netbsd.go
+++ b/vendor/modernc.org/libc/libc_netbsd.go
@@ -205,11 +205,7 @@ var localtime time.Tm
// struct tm *localtime(const time_t *timep);
func Xlocaltime(_ *TLS, timep uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
localtime.Ftm_sec = int32(t.Second())
@@ -226,11 +222,7 @@ func Xlocaltime(_ *TLS, timep uintptr) uintptr {
// struct tm *localtime_r(const time_t *timep, struct tm *result);
func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
(*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
diff --git a/vendor/modernc.org/libc/libc_openbsd.go b/vendor/modernc.org/libc/libc_openbsd.go
index a577ff9c4..4f3700262 100644
--- a/vendor/modernc.org/libc/libc_openbsd.go
+++ b/vendor/modernc.org/libc/libc_openbsd.go
@@ -205,11 +205,7 @@ var localtime time.Tm
// struct tm *localtime(const time_t *timep);
func Xlocaltime(_ *TLS, timep uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
localtime.Ftm_sec = int32(t.Second())
@@ -226,11 +222,7 @@ func Xlocaltime(_ *TLS, timep uintptr) uintptr {
// struct tm *localtime_r(const time_t *timep, struct tm *result);
func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
(*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())
diff --git a/vendor/modernc.org/libc/libc_windows.go b/vendor/modernc.org/libc/libc_windows.go
index dc947a553..fc36dc5a5 100644
--- a/vendor/modernc.org/libc/libc_windows.go
+++ b/vendor/modernc.org/libc/libc_windows.go
@@ -399,11 +399,7 @@ var localtime time.Tm
// struct tm *localtime(const time_t *timep);
func Xlocaltime(_ *TLS, timep uintptr) uintptr {
- loc := gotime.Local
- if r := getenv(Environ(), "TZ"); r != 0 {
- zone, off := parseZone(GoString(r))
- loc = gotime.FixedZone(zone, -off)
- }
+ loc := getLocalLocation()
ut := *(*time.Time_t)(unsafe.Pointer(timep))
t := gotime.Unix(int64(ut), 0).In(loc)
localtime.Ftm_sec = int32(t.Second())
@@ -426,11 +422,7 @@ func X_localtime64(_ *TLS, timep uintptr) uintptr {
// struct tm *localtime_r(const time_t *timep, struct tm *result);
func Xlocaltime_r(_ *TLS, timep, result uintptr) uintptr {
panic(todo(""))
- // loc := gotime.Local
- // if r := getenv(Environ(), "TZ"); r != 0 {
- // zone, off := parseZone(GoString(r))
- // loc = gotime.FixedZone(zone, -off)
- // }
+ // loc := getLocalLocation()
// ut := *(*unix.Time_t)(unsafe.Pointer(timep))
// t := gotime.Unix(int64(ut), 0).In(loc)
// (*time.Tm)(unsafe.Pointer(result)).Ftm_sec = int32(t.Second())