Better addresses split (fixes NB#98684).
[modest] / src / modest-text-utils.c
index bb4da39..49372cc 100644 (file)
@@ -612,6 +612,7 @@ modest_text_utils_split_addresses_list (const gchar *addresses)
        const gchar *my_addrs = addresses;
        const gchar *end;
        gchar *addr;
+       gboolean after_at = FALSE;
 
        g_return_val_if_fail (addresses, NULL);
        
@@ -626,11 +627,14 @@ 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] != ';') {
+       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;
@@ -1629,9 +1633,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);