X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-text-utils.c;h=b0f547ddb908cc48ddc85f726be2b3e81fd7b084;hp=7d2806ee369f8790faf8ed291243068feed99f33;hb=a0b97bdb5b2391619437f8ef3c9bae321a1227dd;hpb=a7b778d59a6e5d9eb3a22632e5e3804fc92fe86e diff --git a/src/modest-text-utils.c b/src/modest-text-utils.c index 7d2806e..b0f547d 100644 --- a/src/modest-text-utils.c +++ b/src/modest-text-utils.c @@ -1105,33 +1105,23 @@ modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insens const gchar* modest_text_utils_get_display_date (time_t date) { - time_t now; #define DATE_BUF_SIZE 64 - static const guint ONE_DAY = 24 * 60 * 60; /* seconds in one day */ static gchar date_buf[DATE_BUF_SIZE]; + + /* calculate the # of days since epoch for + * for today and for the date provided + * based on idea from pvanhoof */ + int day = time(NULL) / (24 * 60 * 60); + int date_day = date / (24 * 60 * 60); - gchar today_buf [DATE_BUF_SIZE]; - - modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, "%x", date); + /* if it's today, show the time, if it's not today, show the date instead */ - now = time (NULL); + if (day == date_day) /* is the date today? */ + modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, "%X", date); + else + modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, "%x", date); - /* we check if the date is within the last 24h, if not, we don't - * have to do the extra, expensive strftime, which was very visible - * in the profiles. - */ - if (abs(now - date) < ONE_DAY) { - - /* it's within the last 24 hours, but double check */ - /* use the localized dates */ - modest_text_utils_strftime (today_buf, DATE_BUF_SIZE, "%x", now); - - /* if it's today, use the time instead */ - if (strcmp (date_buf, today_buf) == 0) - modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, "%X", date); - } - - return date_buf; + return date_buf; /* this is a static buffer, don't free! */ }