]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
utc_offset() was broken with year's first/last day if struct tm.tm_gmtoff didn't...
authorTimo Sirainen <tss@iki.fi>
Tue, 21 Jul 2009 19:18:49 +0000 (15:18 -0400)
committerTimo Sirainen <tss@iki.fi>
Tue, 21 Jul 2009 19:18:49 +0000 (15:18 -0400)
--HG--
branch : HEAD

src/lib/utc-offset.c

index 53362dcbcff7a1f80c60ad4a1cd8195ef6185b85..903c2f18f0337720313656c368c2a1884d7716e8 100644 (file)
@@ -19,9 +19,11 @@ int utc_offset(struct tm *tm, time_t t ATTR_UNUSED)
        gtm = *tm;
 
        /* max offset of 24 hours */
-       if (ltm.tm_yday < gtm.tm_yday)
+       if ((ltm.tm_yday < gtm.tm_yday && ltm.tm_year == gtm.tm_year) ||
+           ltm.tm_year < gtm.tm_year)
                offset = -24 * 60;
-       else if (ltm.tm_yday > gtm.tm_yday)
+       else if ((ltm.tm_yday > gtm.tm_yday && ltm.tm_year == gtm.tm_year) ||
+                ltm.tm_year > gtm.tm_year)
                offset = 24 * 60;
        else
                offset = 0;