gnucash maint: Bug 769124 - Australian (GMT-10) OFX transactions imported have previous

John Ralls jralls at code.gnucash.org
Sun Oct 23 20:29:56 EDT 2016


Updated	 via  https://github.com/Gnucash/gnucash/commit/5fcdfba6 (commit)
	from  https://github.com/Gnucash/gnucash/commit/6695ef95 (commit)



commit 5fcdfba69c9a630767d56db45a52c0087ba2c594
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Oct 24 11:21:12 2016 +1100

    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.

diff --git a/src/import-export/ofx/gnc-ofx-import.c b/src/import-export/ofx/gnc-ofx-import.c
index 4f84cb2..da6a479 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;
 }



Summary of changes:
 src/import-export/ofx/gnc-ofx-import.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)



More information about the gnucash-changes mailing list