sync with latest 0.9.0pre1
[claws.git] / src / addr_compl.c
index 959f66ed90ac6d5b90b4ff7643be9c5d553359e1..f11f4b929c4192ac7dec82c3db7f7f514e20231b 100644 (file)
@@ -187,6 +187,22 @@ static void read_address_book(void) {
        g_completion_list = g_list_reverse(g_completion_list);
 }
 
+/* should clear up anything after complete_address() */
+void clear_completion_cache(void)
+{
+       if (is_completion_pending()) {
+               if (g_completion_prefix)
+                       g_free(g_completion_prefix);
+
+               if (g_completion_addresses) {
+                       g_slist_free(g_completion_addresses);
+                       g_completion_addresses = NULL;
+               }
+
+               g_completion_count = g_completion_next = 0;
+       }
+}
+
 /* start_address_completion() - returns the number of addresses 
  * that should be matched for completion.
  */
@@ -360,7 +376,8 @@ gchar *get_complete_address(gint index)
                        if (p != NULL) {
                                if (!p->name || p->name[0] == '\0')
                                        address = g_strdup_printf(p->address);
-                               else if (strchr_with_skip_quote(p->name, '"', ','))
+                               else if (p->name[0] != '"' &&
+                                        strpbrk(p->name, ",.[]<>") != NULL)
                                        address = g_strdup_printf
                                                ("\"%s\" <%s>", p->name, p->address);
                                else
@@ -413,22 +430,6 @@ guint get_completion_count(void)
                return 0;
 }
 
-/* should clear up anything after complete_address() */
-void clear_completion_cache(void)
-{
-       if (is_completion_pending()) {
-               if (g_completion_prefix)
-                       g_free(g_completion_prefix);
-
-               if (g_completion_addresses) {
-                       g_slist_free(g_completion_addresses);
-                       g_completion_addresses = NULL;
-               }
-
-               g_completion_count = g_completion_next = 0;
-       }
-}
-
 gboolean is_completion_pending(void)
 {
        /* check if completion pending, i.e. we might satisfy a request for the next