summaryrefslogtreecommitdiffstats
path: root/src/lib9/date.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-11-24 00:43:41 +0000
committerrsc <devnull@localhost>2003-11-24 00:43:41 +0000
commitd2c4ee9e488f6c94865cc2f4c874d025bc2ae0d2 (patch)
tree2a0b4a292687bf21d9966692516dd439181b0ec1 /src/lib9/date.c
parent478ee9636fcfe3509d0a901d1250524a5c41d3a8 (diff)
downloadplan9port-d2c4ee9e488f6c94865cc2f4c874d025bc2ae0d2.tar.gz
plan9port-d2c4ee9e488f6c94865cc2f4c874d025bc2ae0d2.zip
Tweaks to build properly on Linux.
Diffstat (limited to 'src/lib9/date.c')
-rw-r--r--src/lib9/date.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/lib9/date.c b/src/lib9/date.c
index 72860aa7..22ec6721 100644
--- a/src/lib9/date.c
+++ b/src/lib9/date.c
@@ -1,3 +1,5 @@
+#include <stdlib.h> /* setenv etc. */
+
#include <u.h>
#include <libc.h>
@@ -72,11 +74,22 @@ p9localtime(long t)
return &bigtm;
}
-#if !defined(_HAVETIMEGM) && defined(_HAVETIMEZONEINT)
-static long
+#if !defined(_HAVETIMEGM)
+static time_t
timegm(struct tm *tm)
{
- return mktime(tm)-timezone;
+ time_t ret;
+ char *tz;
+
+ tz = getenv("TZ");
+ setenv("TZ", "", 1);
+ tzset();
+ ret = mktime(tm);
+ if(tz)
+ setenv("TZ", tz, 1);
+ else
+ unsetenv("TZ");
+ return ret;
}
#endif