From 6481b91520150e9664a3c4abc5d2aebdce422f93 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Mon, 6 Dec 2010 12:23:16 +0100 Subject: [PATCH] : Add timegm(), timelocal() and others. Add timegm(), timelocal(), time2posix() and posix2time() to the C library. Change-Id: I34d5771ed83dd994870a5ca58a511d01898b1ffb --- libc/bionic/time64_config.h | 2 +- libc/docs/CHANGES.TXT | 2 ++ libc/include/time.h | 5 +++++ libc/tzcode/localtime.c | 14 ++++++++++++-- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/libc/bionic/time64_config.h b/libc/bionic/time64_config.h index 53bcecf6b..13850451c 100644 --- a/libc/bionic/time64_config.h +++ b/libc/bionic/time64_config.h @@ -33,7 +33,7 @@ */ #define HAS_GMTIME_R #define HAS_LOCALTIME_R -/*#define HAS_TIMEGM */ +#define HAS_TIMEGM /* Details of non-standard tm struct elements. diff --git a/libc/docs/CHANGES.TXT b/libc/docs/CHANGES.TXT index bc641f46b..67b9e76da 100644 --- a/libc/docs/CHANGES.TXT +++ b/libc/docs/CHANGES.TXT @@ -9,6 +9,8 @@ Differences between current and Android 2.3: - : Include +- : Add timegm(), timelocal(), time2posix() and posix2time() + ------------------------------------------------------------------------------- Differences between Android 2.3 and Android 2.2: diff --git a/libc/include/time.h b/libc/include/time.h index 5d1a0e268..4ad4f7bd7 100644 --- a/libc/include/time.h +++ b/libc/include/time.h @@ -128,6 +128,11 @@ extern int timer_settime(timer_t timerid, int flags, const struct itimerspec *v extern int timer_gettime(timer_t timerid, struct itimerspec *value); extern int timer_getoverrun(timer_t timerid); +extern time_t timelocal(struct tm *tm); +extern time_t timegm(struct tm* tm); +extern time_t time2posix(time_t ti); +extern time_t posix2time(time_t ti); + __END_DECLS #endif /* _TIME_H_ */ diff --git a/libc/tzcode/localtime.c b/libc/tzcode/localtime.c index 85a913ea6..e442a03a5 100644 --- a/libc/tzcode/localtime.c +++ b/libc/tzcode/localtime.c @@ -60,6 +60,14 @@ static char elsieid[] = "@(#)localtime.c 8.3"; # define XLOG(x) do{}while (0) #endif +/* Add the following function implementations: + * timelocal() + * timegm() + * time2posix() + * posix2time() + */ +#define STD_INSPIRED 1 + /* THREAD-SAFETY SUPPORT GOES HERE */ static pthread_mutex_t _tzMutex = PTHREAD_MUTEX_INITIALIZER; @@ -1509,7 +1517,7 @@ struct tm * tmp; } #ifdef STD_INSPIRED - +#if 0 /* disabled because there is no good documentation for this function */ struct tm * offtime(timep, offset) const time_t * const timep; @@ -1517,7 +1525,7 @@ const long offset; { return gmtsub(timep, offset, &tmGlobal); } - +#endif /* 0 */ #endif /* defined STD_INSPIRED */ /* @@ -2106,6 +2114,7 @@ struct tm * const tmp; return result; } +#if 0 /* disable due to lack of clear documentation on this function */ time_t timeoff(tmp, offset) struct tm * const tmp; @@ -2120,6 +2129,7 @@ const long offset; return result; } +#endif /* 0 */ #endif /* defined STD_INSPIRED */