Code

screen_search: call do_search() on CMD_SCREEN_UPDATE
[ncmpc.git] / src / screen_search.c
index 5434738660830b3ddd6e29221cb71b95c53c8ed3..09d5b553a0111fa82475eeab76787fc3c908f1f0 100644 (file)
@@ -297,10 +297,24 @@ search_advanced_query(char *query, struct mpdclient *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);
@@ -321,14 +335,7 @@ search_new(struct mpdclient *c)
                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();
 
@@ -428,10 +435,7 @@ screen_search_cmd(struct mpdclient *c, command_t cmd)
        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);
                }