From 5fcdfba69c9a630767d56db45a52c0087ba2c594 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Mon, 24 Oct 2016 11:21:12 +1100 Subject: [PATCH] Bug 769124 - Australian (GMT-10) OFX transactions imported have previous day's date. Previous efforts didn't work on Windows and shouldn't have elsewhere because gnc_localtime and gnc_mktime are inverse functions; in particular gnc_mktime doesn't adjust the time based on the value of tm_isdst, though some implementations of STDC mktime do. Rather than being too clever about trying to find the DST offset this implementation just uses 1 hour. --- src/import-export/ofx/gnc-ofx-import.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/import-export/ofx/gnc-ofx-import.c b/src/import-export/ofx/gnc-ofx-import.c index 4f84cb280c..da6a4797b6 100644 --- a/src/import-export/ofx/gnc-ofx-import.c +++ b/src/import-export/ofx/gnc-ofx-import.c @@ -337,13 +337,8 @@ fix_ofx_bug_39 (time64 t) #if HAVE_OFX_BUG_39 struct tm stm; gnc_localtime_r(&t, &stm); - if (!stm.tm_isdst) - { - time64 new_t; - stm.tm_isdst = 1; - new_t = gnc_mktime(&stm); - t += t - new_t; - } + if (daylight && !stm.tm_isdst) + t += 3600; #endif return t; }