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.
*/
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
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