From: wwp Date: Mon, 28 Apr 2014 15:53:03 +0000 (+0200) Subject: Fix wrong address book contact in message list's From column and potentially X-Git-Tag: 3.10.0~120 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=9e6eb7883307203f591b1c1f154e8779e6fc092e Fix wrong address book contact in message list's From column and potentially at other places. The AB completion engine won't use submatching by default, it will only use it when completion is requested by a human operator (compose window, few other GUI location). Updated the doc accordingly. --- diff --git a/manual/advanced.xml b/manual/advanced.xml index 1776d14fe..8a17cdc75 100644 --- a/manual/advanced.xml +++ b/manual/advanced.xml @@ -563,7 +563,7 @@ address_search_wildcard - TAB-address completion in the Compose window will match any part of the + TAB-address completion in the Compose window and other GUI places will match any part of the string (1) or just the start of the string (0). diff --git a/src/addr_compl.c b/src/addr_compl.c index 407e6267f..104ce6661 100644 --- a/src/addr_compl.c +++ b/src/addr_compl.c @@ -179,11 +179,20 @@ static gint addr_completion_func(const gchar *needle, const gchar *haystack, static void init_all(void) { g_completion = g_completion_new(completion_func); - if (prefs_common.address_search_wildcard) - g_completion_set_compare(g_completion, addr_completion_func); cm_return_if_fail(g_completion != NULL); } +/** + * set the compare function (default is strncmp) + */ +static void set_match_any_part(const gboolean any_part) +{ + if (any_part && prefs_common.address_search_wildcard) + g_completion_set_compare(g_completion, addr_completion_func); + else + g_completion_set_compare(g_completion, strncmp); +} + static void free_all_addresses(void) { GList *walk; @@ -1179,6 +1188,7 @@ static void completion_window_apply_selection(GtkTreeView *list_view, void address_completion_start(GtkWidget *mainwindow) { start_address_completion(NULL); + set_match_any_part(TRUE); /* register focus change hook */ g_signal_connect(G_OBJECT(mainwindow), "set_focus",