[Gnucash-changes] Fix bug #170444.
Derek Atkins
warlord at cvs.gnucash.org
Mon Aug 29 15:41:30 EDT 2005
Log Message:
-----------
Fix bug #170444.
* src/engine/gnc-date.c: fix bug #170444 by making sure we
pass a full tm to strftime()
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash:
ChangeLog
gnucash/src/engine:
gnc-date.c
Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.275
retrieving revision 1.1487.2.276
diff -LChangeLog -LChangeLog -u -r1.1487.2.275 -r1.1487.2.276
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,8 @@
+2005-08-29 Derek Atkins <derek at ihtfp.com>
+
+ * src/engine/gnc-date.c: fix bug #170444 by making sure we
+ pass a full tm to strftime()
+
2005-08-28 Christian Stimming <stimming at tuhh.de>
* macros/autogen.sh: Make build system up to date: Remove
Index: gnc-date.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-date.c,v
retrieving revision 1.6.2.5
retrieving revision 1.6.2.6
diff -Lsrc/engine/gnc-date.c -Lsrc/engine/gnc-date.c -u -r1.6.2.5 -r1.6.2.6
--- src/engine/gnc-date.c
+++ src/engine/gnc-date.c
@@ -463,10 +463,10 @@
case QOF_DATE_FORMAT_CE:
flen = g_snprintf (buff, len, "%2d.%2d.%-4d", day, month, year);
break;
- case QOF_DATE_FORMAT_ISO:
- flen = g_snprintf (buff, len, "%04d-%02d-%02d", year, month, day);
- break;
+ /*
case QOF_DATE_FORMAT_UTC:
+ // Is there any reason to go through strftime() here when we're using
+ // the same format as with ISO? The output is the same either way.
{
struct tm tm_str;
@@ -477,9 +477,11 @@
flen = strftime(buff, MAX_DATE_LENGTH, "%Y-%m-%d", &tm_str);
break;
}
+ */
case QOF_DATE_FORMAT_LOCALE:
{
struct tm tm_str;
+ time_t t;
tm_str.tm_mday = day;
tm_str.tm_mon = month - 1; /* tm_mon = 0 through 11 */
@@ -487,10 +489,17 @@
* says, it's not a Y2K thing */
gnc_tm_set_day_start (&tm_str);
+ t = mktime (&tm_str);
+ localtime_r (&t, &tm_str);
flen = strftime (buff, len, GNC_D_FMT, &tm_str);
+ if (flen != 0)
+ break;
}
+ /* FALLTHROUGH */
+ case QOF_DATE_FORMAT_ISO:
+ case QOF_DATE_FORMAT_UTC:
+ flen = g_snprintf (buff, len, "%04d-%02d-%02d", year, month, day);
break;
-
case QOF_DATE_FORMAT_US:
default:
flen = g_snprintf (buff, len, "%2d/%2d/%-4d", month, day, year);
More information about the gnucash-changes
mailing list