g_return_val_if_fail (to, NULL);
g_return_val_if_fail (subject, NULL);
- modest_text_utils_strftime (sent_str, 100, "%c", localtime (&sent_date));
+ modest_text_utils_strftime (sent_str, 100, "%c", sent_date);
if (!strcmp (content_type, "text/html"))
/* TODO: extract the <body> of the HTML and pass it to
/* just to prevent warnings:
* warning: `%x' yields only last 2 digits of year in some locales
*/
-size_t
-modest_text_utils_strftime(char *s, size_t max, const char *fmt, const struct tm *tm)
+gsize
+modest_text_utils_strftime(char *s, gsize max, const char *fmt, time_t timet)
{
- return strftime(s, max, fmt, tm);
+ /* only since Gtk 2.10
+ *
+ *static GDate date;
+ *g_date_set_time_t (&date, timet);
+ *return g_date_strftime (s, max, fmt, (const GDate*) &date);
+ */
+
+ struct tm *time_tm;
+ time_tm = localtime (&timet);
+
+ return strftime (s, max, fmt, time_tm);
}
gchar *
gchar sent_str[101];
/* format sent_date */
- modest_text_utils_strftime (sent_str, 100, "%c", localtime (&sent_date));
+ modest_text_utils_strftime (sent_str, 100, "%c", sent_date);
return g_strdup_printf (N_("On %s, %s wrote:\n"), sent_str, from);
}
/* work even when s1 and/or s2 == NULL */
if (G_UNLIKELY(s1 == s2))
return 0;
- if (G_UNLIKELY(!s1))
- return -1;
- if (G_UNLIKELY(!s2))
- return 1;
/* if it's not case sensitive */
if (!insensitive)
- return strcmp (s1, s2);
+ return strcmp (s1 ? s1 : "", s2 ? s2 : "");
- n1 = g_utf8_collate_key (s1, -1);
- n2 = g_utf8_collate_key (s2, -1);
+ n1 = g_utf8_collate_key (s1 ? s1 : "", -1);
+ n2 = g_utf8_collate_key (s2 ? s2 : "", -1);
result = strcmp (n1, n2);
{
static GHashTable *date_cache = NULL;
- struct tm date_tm, now_tm;
time_t now;
-
- const gint buf_size = 64;
- static gchar date_buf[64]; /* buf_size is not ... */
- static gchar now_buf[64]; /* ...const enough... */
+ const guint BUF_SIZE = 64;
+ gchar date_buf[BUF_SIZE];
+ gchar now_buf [BUF_SIZE];
gchar* cached_val;
if (G_UNLIKELY(!date_cache))
now = time (NULL);
- localtime_r(&now, &now_tm);
- localtime_r(&date, &date_tm);
-
/* get today's date */
- modest_text_utils_strftime (date_buf, buf_size, "%x", &date_tm);
- modest_text_utils_strftime (now_buf, buf_size, "%x", &now_tm);
+ modest_text_utils_strftime (date_buf, BUF_SIZE, "%x", date);
+ modest_text_utils_strftime (now_buf, BUF_SIZE, "%x", now);
/* today */
/* if this is today, get the time instead of the date */
if (strcmp (date_buf, now_buf) == 0)
- strftime (date_buf, buf_size, _("%X"), &date_tm);
+ modest_text_utils_strftime (date_buf, BUF_SIZE, _("%X"), date);
cached_val = g_strdup(date_buf);
g_hash_table_insert (date_cache, (gpointer)&date, (gpointer)cached_val);
return (count >= 1) ? TRUE : FALSE;
}
+
+
+
+
+gchar *
+modest_text_utils_get_display_size (guint size)
+{
+ const guint KB=1024;
+ const guint MB=1024 * KB;
+ const guint GB=1024 * MB;
+ const guint TB=1024 * GB;
+
+ if (size < KB)
+ return g_strdup_printf (_("%0.1f Kb"), (double)size / KB);
+ else if (size < MB)
+ return g_strdup_printf (_("%d Kb"), size / KB);
+ else if (size < GB)
+ return g_strdup_printf (_("%d Mb"), size / MB);
+ else if (size < TB)
+ return g_strdup_printf (_("%d Gb"), size/ GB);
+ else
+ return g_strdup_printf (_("Very big"));
+}