commit 9e6eb7883307203f591b1c1f154e8779e6fc092e
parent 59e554fb4ddcb27d6fe4f2132d26ede355562fa5
Author: wwp <wwp@free.fr>
Date: Mon, 28 Apr 2014 17:53:03 +0200
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.
Diffstat:
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/manual/advanced.xml b/manual/advanced.xml
@@ -563,7 +563,7 @@
<term><literal>address_search_wildcard</literal></term>
<listitem>
<para>
- 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).
</para>
</listitem>
diff --git 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",