diff --git a/src/screen_search.c b/src/screen_search.c
index 5434738660830b3ddd6e29221cb71b95c53c8ed3..09d5b553a0111fa82475eeab76787fc3c908f1f0 100644 (file)
--- a/src/screen_search.c
+++ b/src/screen_search.c
return fl;
}
+static struct filelist *
+do_search(struct mpdclient *c, char *query)
+{
+ struct filelist *fl;
+
+ fl = search_advanced_query(query, c);
+ if (!advanced_search_mode && browser.filelist == NULL)
+ return filelist_search(c, FALSE,
+ mode[options.search_mode].table,
+ query);
+
+ return fl;
+}
+
static void
search_new(struct mpdclient *c)
{
- if (c->connection == NULL)
+ if (!mpdclient_is_connected(c))
return;
search_clear(true);
browser.filelist = NULL;
}
- if (mpd_connection_cmp_server_version(c->connection, 0, 12, 0) >= 0)
- browser.filelist = search_advanced_query(pattern, c);
-
- if (!advanced_search_mode && browser.filelist == NULL)
- browser.filelist = filelist_search(c, FALSE,
- mode[options.search_mode].table,
- pattern);
-
+ browser.filelist = do_search(c, pattern);
if (browser.filelist == NULL)
browser.filelist = filelist_new();
case CMD_SCREEN_UPDATE:
if (pattern) {
search_clear(false);
- browser.filelist = filelist_search(c,
- FALSE,
- mode[options.search_mode].table,
- pattern);
+ browser.filelist = do_search(c, pattern);
screen_browser_sync_highlights(browser.filelist,
&c->playlist);
}