AUDIT: r16776 - gnucash/trunk/lib/libqof/qof - #506074: Handle fractional timezone offsets correctly in gnc_timespec_to_iso8601_buff().

Andreas Köhler andi5 at cvs.gnucash.org
Mon Dec 31 08:52:25 EST 2007


Author: andi5
Date: 2007-12-31 08:52:24 -0500 (Mon, 31 Dec 2007)
New Revision: 16776
Trac: http://svn.gnucash.org/trac/changeset/16776

Modified:
   gnucash/trunk/lib/libqof/qof/gnc-date.c
Log:
#506074: Handle fractional timezone offsets correctly in gnc_timespec_to_iso8601_buff().

Patch from Daniel Harding
BP


Modified: gnucash/trunk/lib/libqof/qof/gnc-date.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/gnc-date.c	2007-12-31 11:05:59 UTC (rev 16775)
+++ gnucash/trunk/lib/libqof/qof/gnc-date.c	2007-12-31 13:52:24 UTC (rev 16776)
@@ -1164,15 +1164,16 @@
   localtime_r(&tmp, &parsed);
 
   secs = gnc_timezone (&parsed);
-  tz_hour = secs / 3600;
-  tz_min = (secs % 3600) / 60;
 
   /* We also have to print the sign by hand, to work around a bug
    * in the glibc 2.1.3 printf (where %+02d fails to zero-pad).
    */
   cyn = '-';
-  if (0>tz_hour) { cyn = '+'; tz_hour = -tz_hour; }
+  if (0>secs) { cyn = '+'; secs = -secs; }
 
+  tz_hour = secs / 3600;
+  tz_min = (secs % 3600) / 60;
+
   len = sprintf (buff, "%4d-%02d-%02d %02d:%02d:%02d.%06ld %c%02d%02d",
                  parsed.tm_year + 1900,
                  parsed.tm_mon + 1,



More information about the gnucash-changes mailing list