aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/posix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/posix')
-rw-r--r--sysdeps/posix/gettimeofday.c31
-rw-r--r--sysdeps/posix/time.c2
2 files changed, 5 insertions, 28 deletions
diff --git a/sysdeps/posix/gettimeofday.c b/sysdeps/posix/gettimeofday.c
index 6ba625e..f5c462e 100644
--- a/sysdeps/posix/gettimeofday.c
+++ b/sysdeps/posix/gettimeofday.c
@@ -31,34 +31,11 @@ __gettimeofday (struct timeval *tv, struct timezone *tz)
return -1;
}
- tv->tv_sec = (long int) time ((time_t *) NULL);
- tv->tv_usec = 0L;
+ if (tz)
+ memset (tz, 0, sizeof (struct timezone));
- if (tz != NULL)
- {
- const time_t timer = tv->tv_sec;
- struct tm tm;
- const struct tm *tmp;
-
- const long int save_timezone = __timezone;
- const long int save_daylight = __daylight;
- char *save_tzname[2];
- save_tzname[0] = __tzname[0];
- save_tzname[1] = __tzname[1];
-
- tmp = localtime_r (&timer, &tm);
-
- tz->tz_minuteswest = __timezone / 60;
- tz->tz_dsttime = __daylight;
-
- __timezone = save_timezone;
- __daylight = save_daylight;
- __tzname[0] = save_tzname[0];
- __tzname[1] = save_tzname[1];
-
- if (tmp == NULL)
- return -1;
- }
+ tv->tv_usec = 0;
+ tv->tv_sec = time (0);
return 0;
}
diff --git a/sysdeps/posix/time.c b/sysdeps/posix/time.c
index e1b3bc8..2f7f7a6 100644
--- a/sysdeps/posix/time.c
+++ b/sysdeps/posix/time.c
@@ -28,7 +28,7 @@ time (time_t *t)
struct timeval tv;
time_t result;
- if (__gettimeofday (&tv, (struct timezone *) NULL))
+ if (__gettimeofday (&tv, 0))
result = (time_t) -1;
else
result = (time_t) tv.tv_sec;