summaryrefslogtreecommitdiff
path: root/libc/misc/time
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2006-03-23 11:14:16 +0000
committerPeter S. Mazinger <ps.m@gmx.net>2006-03-23 11:14:16 +0000
commitd5f635529a4dfe62b5ef565135b6f506040a66b0 (patch)
treeb66b2aa7422304b491d1f9c21986dd3f57cd017d /libc/misc/time
parent9535cbf18c6b4415dc35c220ca4cca15eba5dc1b (diff)
select needs sys/select.h, str[n]casecmp/ffs needs strings.h, if BSD is not defined, gettimeofday has other prototype and tm_gmtoff/tm_zone do not exist
Diffstat (limited to 'libc/misc/time')
-rw-r--r--libc/misc/time/time.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index 318069b33..93afa9b68 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -133,6 +133,7 @@
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
+#include <strings.h>
#include <time.h>
#include <sys/time.h>
#include <limits.h>
@@ -748,8 +749,13 @@ struct tm attribute_hidden *__time_localtime_tzi(register const time_t *__restri
_time_t2tm(x, days, result);
result->tm_isdst = dst;
#ifdef __UCLIBC_HAS_TM_EXTENSIONS__
+# ifdef __USE_BSD
result->tm_gmtoff = - tzi[dst].gmt_offset;
result->tm_zone = lookup_tzname(tzi[dst].tzname);
+# else
+ result->__tm_gmtoff = - tzi[dst].gmt_offset;
+ result->__tm_zone = lookup_tzname(tzi[dst].tzname);
+# endif
#endif /* __UCLIBC_HAS_TM_EXTENSIONS__ */
} while ((++dst < 2)
&& ((result->tm_isdst = tm_isdst(result, tzi)) != 0));
@@ -1128,8 +1134,13 @@ size_t __XL_NPP(strftime)(char *__restrict s, size_t maxsize,
#ifdef __UCLIBC_HAS_TM_EXTENSIONS__
#define RSP_TZUNLOCK ((void) 0)
-#define RSP_TZNAME timeptr->tm_zone
-#define RSP_GMT_OFFSET (-timeptr->tm_gmtoff)
+# ifdef __USE_BSD
+# define RSP_TZNAME timeptr->tm_zone
+# define RSP_GMT_OFFSET (-timeptr->tm_gmtoff)
+# else
+# define RSP_TZNAME timeptr->__tm_zone
+# define RSP_GMT_OFFSET (-timeptr->__tm_gmtoff)
+# endif
#else
@@ -2206,8 +2217,13 @@ struct tm attribute_hidden *_time_t2tm(const time_t *__restrict timer,
/* TODO -- should this be 0? */
p[4] = 0; /* result[8] .. tm_isdst */
#ifdef __UCLIBC_HAS_TM_EXTENSIONS__
+# ifdef __USE_BSD
result->tm_gmtoff = 0;
result->tm_zone = utc_string;
+# else
+ result->__tm_gmtoff = 0;
+ result->__tm_zone = utc_string;
+# endif
#endif /* __UCLIBC_HAS_TM_EXTENSIONS__ */
return result;