From 692bfbd2d0f912f2b2c7bf0556b88a93672b4aec Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Thu, 9 Nov 2006 20:52:18 +0000 Subject: [PATCH] Fixed wrong DST calculation in my_timezone SVN revision: 1751 --- src/elogd.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index fa628bf2..85824937 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -592,13 +592,10 @@ int my_read(int fh, void *buffer, unsigned int bytes) /* workaround for wong timezone under MAX OSX */ long my_timezone() { -#ifdef OS_MACOSX +#if defined(OS_MACOSX) || defined(__FreeBSD__) time_t tp; time(&tp); - if (localtime(&tp)->tm_isdst > 0) - return -localtime(&tp)->tm_gmtoff + 3600; - else - return -localtime(&tp)->tm_gmtoff; + return -localtime(&tp)->tm_gmtoff; #else return timezone; #endif @@ -16679,6 +16676,8 @@ void show_rss_feed(LOGBOOK * lbs) assert(ts); strftime(str, sizeof(str), "%a, %d %b %Y %H:%M:%S", ts); offset = (-(int) my_timezone()); + if (ts->tm_isdst) + offset += 3600; snprintf(date, sizeof(date) - 1, "%s %+03d%02d", str, (int) (offset / 3600), (int) ((abs((int) offset) / 60) % 60)); getcfg("global", "Language", str, sizeof(str));