From 6b9a74f9e625e8e4d96e325b959ebead48e4a192 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Wed, 23 Feb 2005 19:08:58 +0000 Subject: 2005-02-23 Jeff Johnston * libc/include/time.h [!CYGWIN](_timezone): Change to long. (__tzrule_type, __tzinfo_type): New types. (__gettzinfo): New function. * libc/sys/linux/include/time.h: Ditto. * libc/time/Makefile.am: Add gettzinfo.c. * libc/time/Makefile.in: Regenerated. * libc/time/local.h: Moved __tzrule_type to time.h. * libc/time/mktime.c: Call __gettzinfo to reference __tznorth, __tzyear, and __tzrule array. * libc/time/mktm_r.c: Ditto. * libc/time/strftime.c: Ditto. * libc/time/tzset_r.c: Ditto. Also remove definition of __tzrule which is now in gettzinfo.c. Change _timezone references to not cast to time_t. * libc/time/gettzinfo.c: New file. --- newlib/libc/time/strftime.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'newlib/libc/time/strftime.c') diff --git a/newlib/libc/time/strftime.c b/newlib/libc/time/strftime.c index 28b00eeab..395f8f3d8 100644 --- a/newlib/libc/time/strftime.c +++ b/newlib/libc/time/strftime.c @@ -757,11 +757,12 @@ _DEFUN (strftime, (s, maxsize, format, tim_p), if (count < maxsize - 5) { int offset; + __tzinfo_type *tz = __gettzinfo (); TZ_LOCK; /* The sign of this is exactly opposite the envvar TZ. We could directly use the global _timezone for tm_isdst==0, but have to use __tzrule for daylight savings. */ - offset = -__tzrule[tim_p->tm_isdst > 0].offset; + offset = -tz->__tzrule[tim_p->tm_isdst > 0].offset; TZ_UNLOCK; sprintf (&s[count], "%+03ld%.2d", offset / SECSPERHOUR, abs (offset / SECSPERMIN) % 60); -- cgit v1.2.3