diff options
-rw-r--r-- | addressbook/ChangeLog | 9 | ||||
-rw-r--r-- | addressbook/gui/widgets/eab-contact-display.c | 13 |
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); } |