aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog9
-rw-r--r--addressbook/gui/widgets/eab-contact-display.c13
2 files changed, 15 insertions, 7 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 9e3fe5ca9a..985c4ccc41 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,5 +1,14 @@
2007-04-09 simon.zheng <simon.zheng@sun.com>
+ ** Fix for bug #426487
+
+ * gui/widgets/eab-contact-display.c: (accum_time_attribute):
+ strftime() supplied by OS is subject to locale encoding, i.e.
+ ja_JP.PCK. Using g_date_strftime() instead, which works on a
+ UTF-8 format string and store a UTF-8 result.
+
+2007-04-09 simon.zheng <simon.zheng@sun.com>
+
** Fix for bug #426829.
* gui/contact-editor/eab-editor.c: (eab_editor_confirm_delete):
diff --git a/addressbook/gui/widgets/eab-contact-display.c b/addressbook/gui/widgets/eab-contact-display.c
index 311af261be..d243d93bb1 100644
--- a/addressbook/gui/widgets/eab-contact-display.c
+++ b/addressbook/gui/widgets/eab-contact-display.c
@@ -415,17 +415,16 @@ static void
accum_time_attribute (GString *gstr, EContact *contact, const char *html_label, EContactField field, const char *icon, unsigned int html_flags)
{
EContactDate *date;
- struct tm tdate;
+ GDate *gdate = NULL;
char sdate[100];
date = e_contact_get (contact, field);
- memset (&tdate, 0, sizeof (struct tm));
-
if (date) {
- tdate.tm_year = date->year-1900;
- tdate.tm_mday = date->day;
- tdate.tm_mon = date->month-1;
- strftime (sdate, 100, "%x", &tdate);
+ gdate = g_date_new_dmy ( date->day,
+ date->month,
+ date->year );
+ g_date_strftime (sdate, 100, "%x", gdate);
+ g_date_free (gdate);
accum_name_value (gstr, html_label, sdate, icon, html_flags);
e_contact_date_free (date);
}