[Gnucash-changes] fix bug #170444.
Derek Atkins
warlord at cvs.gnucash.org
Mon Aug 29 15:40:44 EDT 2005
Log Message:
-----------
fix bug #170444.
* src/engine/date.[ch]: fix for bug #170444 -- pass a better
tm value to strftime.
Tags:
----
gnucash-1-8-branch
Modified Files:
--------------
gnucash:
ChangeLog
gnucash/src/engine:
date.c
date.h
Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1461.2.418
retrieving revision 1.1461.2.419
diff -LChangeLog -LChangeLog -u -r1.1461.2.418 -r1.1461.2.419
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,8 @@
+2005-08-29 Derek Atkins <derek at ihtfp.com>
+
+ * src/engine/date.[ch]: fix for bug #170444 -- pass a better
+ tm value to strftime.
+
2005-08-16 Christian Stimming <stimming at tuhh.de>
* src/import-export/hbci/hbci-interaction.c (inputBoxCB): Aaarg,
Index: date.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Attic/date.c,v
retrieving revision 1.59.2.3
retrieving revision 1.59.2.4
diff -Lsrc/engine/date.c -Lsrc/engine/date.c -u -r1.59.2.3 -r1.59.2.4
--- src/engine/date.c
+++ src/engine/date.c
@@ -361,12 +361,11 @@
case DATE_FORMAT_CE:
sprintf (buff, "%2d.%2d.%-4d", day, month, year);
break;
- case DATE_FORMAT_ISO:
- sprintf (buff, "%04d-%02d-%02d", year, month, day);
- break;
case DATE_FORMAT_LOCALE:
{
struct tm tm_str;
+ time_t t;
+ int n;
tm_str.tm_mday = day;
tm_str.tm_mon = month - 1; /* tm_mon = 0 through 11 */
@@ -374,10 +373,16 @@
* says, it's not a Y2K thing */
gnc_tm_set_day_start (&tm_str);
- strftime (buff, MAX_DATE_LENGTH, GNC_D_FMT, &tm_str);
+ t = mktime (&tm_str);
+ localtime_r (&t, &tm_str);
+ n = strftime (buff, MAX_DATE_LENGTH, GNC_D_FMT, &tm_str);
+ if (n != 0)
+ break;
}
+ /* FALLTHROUGH */
+ case DATE_FORMAT_ISO:
+ sprintf (buff, "%04d-%02d-%02d", year, month, day);
break;
-
case DATE_FORMAT_US:
default:
sprintf (buff, "%2d/%2d/%-4d", month, day, year);
Index: date.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Attic/date.h,v
retrieving revision 1.43.2.1
retrieving revision 1.43.2.2
diff -Lsrc/engine/date.h -Lsrc/engine/date.h -u -r1.43.2.1 -r1.43.2.2
--- src/engine/date.h
+++ src/engine/date.h
@@ -58,7 +58,7 @@
#define DATE_FORMAT_LAST DATE_FORMAT_LOCALE
/** The maximum length of a string created by the date printers */
-#define MAX_DATE_LENGTH 11
+#define MAX_DATE_LENGTH 31
/** Datatypes *******************************************************/
More information about the gnucash-changes
mailing list