{
struct tm tm;
+ /* To prevent possible problems in strftime that could leave
+ garbage in the s variable */
+ if (s)
+ s[0] = '\0';
+
/* does not work on old maemo glib:
* g_date_set_time_t (&date, timet);
*/
const gchar *my_addrs = addresses;
const gchar *end;
gchar *addr;
+ gboolean after_at = FALSE;
g_return_val_if_fail (addresses, NULL);
/* nope, we are at the start of some address
* now, let's find the end of the address */
end = my_addrs + 1;
- while (end[0] && end[0] != ',' && end[0] != ';')
+ while (end[0] && end[0] != ';' && !(after_at && end[0] == ',')) {
+ if (end[0] == '\"') {
+ while (end[0] && end[0] != '\"')
+ ++end;
+ }
+ if (end[0] == '@') {
+ after_at = TRUE;
+ }
+ if ((end[0] && end[0] == '>')&&(end[1] && end[1] == ',')) {
+ ++end;
+ break;
+ }
++end;
+ }
/* we got the address; copy it and remove trailing whitespace */
addr = g_strndup (my_addrs, end - my_addrs);
return match2->offset - match1->offset;
}
-static gboolean url_matches_block = 0;
+static gint url_matches_block = 0;
static url_match_pattern_t patterns[] = MAIL_VIEWER_URL_MATCH_PATTERNS;
if (!insensitive) {
/* optimization: shortcut if first char is ascii */
- if (((s1[0] & 0xf0)== 0) && ((s2[0] & 0xf0) == 0))
+ if (((s1[0] & 0x80)== 0) && ((s2[0] & 0x80) == 0) &&
+ (s1[0] != s2[0]))
return s1[0] - s2[0];
return g_utf8_collate (s1, s2);
gint result;
gchar *n1, *n2;
- /* optimization: short cut iif first char is ascii */
- if (((s1[0] & 0xf0) == 0) && ((s2[0] & 0xf0) == 0))
+ /* optimization: shortcut if first char is ascii */
+ if (((s1[0] & 0x80) == 0) && ((s2[0] & 0x80) == 0) &&
+ (tolower(s1[0]) != tolower (s2[0])))
return tolower(s1[0]) - tolower(s2[0]);
n1 = g_utf8_strdown (s1, -1);
/* if it's today, show the time, if it's not today, show the date instead */
+ /* TODO: take into account the system config for 24/12h */
if (day == date_day) /* is the date today? */
- modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, "%X", date);
+ modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, _HL("wdgt_va_24h_time"), date);
else
- modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, "%x", date);
+ modest_text_utils_strftime (date_buf, DATE_BUF_SIZE, _HL("wdgt_va_date"), date);
return date_buf; /* this is a static buffer, don't free! */
}
const guint MB=1024 * KB;
const guint GB=1024 * MB;
- if (size == 0)
- return g_strdup_printf(_FM("sfil_li_size_kb"), 0);
- if (0 < size && size < KB)
+ if (0 <= size && size < KB)
return g_strdup_printf (_FM("sfil_li_size_kb"), 1);
else if (KB <= size && size < 100 * KB)
return g_strdup_printf (_FM("sfil_li_size_1kb_99kb"), size / KB);