X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-text-utils.c;h=aead8afd0e73313b6caa252d1a5a3ed0850917c2;hp=609659feb8fb53cf8b7dad08020b6048b955d0a8;hb=1b908acde049d391f1f94971e04d149852b4d2e5;hpb=9d1b442e15c3234388ac93a5b08d5904f3ca54c9 diff --git a/src/modest-text-utils.c b/src/modest-text-utils.c index 609659f..aead8af 100644 --- a/src/modest-text-utils.c +++ b/src/modest-text-utils.c @@ -278,6 +278,11 @@ modest_text_utils_strftime(char *s, gsize max, const char *fmt, time_t timet) { 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); */ @@ -621,8 +626,17 @@ modest_text_utils_split_addresses_list (const gchar *addresses) /* 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] != ';') && (end[0] != ',')) { + if (end[0] == '\"') { + while (end[0] && end[0] != '\"') + ++end; + } + 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); @@ -995,7 +1009,7 @@ cmp_offsets_reverse (const url_match_t *match1, const url_match_t *match2) 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; @@ -1269,7 +1283,7 @@ modest_text_utils_get_subject_prefix_len (const gchar *sub) int c = prefix_len + 1; while (sub[c] && sub[c] != ']') ++c; - if (sub[c]) + if (!sub[c]) return 0; /* no end to the ']' found */ else prefix_len = c + 1; @@ -1304,7 +1318,8 @@ modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insens 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); @@ -1313,8 +1328,9 @@ modest_text_utils_utf8_strcmp (const gchar* s1, const gchar *s2, gboolean insens 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); @@ -1344,10 +1360,11 @@ modest_text_utils_get_display_date (time_t date) /* 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! */ } @@ -1392,8 +1409,8 @@ modest_text_utils_validate_folder_name (const gchar *folder_name) /* Cannot contain Windows port numbers. I'd like to use GRegex but it's still not available in Maemo. sergio */ - if (g_ascii_strncasecmp (folder_name, "LPT", 3) || - g_ascii_strncasecmp (folder_name, "COM", 3)) { + if (!g_ascii_strncasecmp (folder_name, "LPT", 3) || + !g_ascii_strncasecmp (folder_name, "COM", 3)) { glong val; gchar *endptr; @@ -1612,9 +1629,7 @@ modest_text_utils_get_display_size (guint64 size) 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);