aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/SimpleDatabasePlugin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/SimpleDatabasePlugin.cxx')
-rw-r--r--src/db/SimpleDatabasePlugin.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/db/SimpleDatabasePlugin.cxx b/src/db/SimpleDatabasePlugin.cxx
index e1cf0167b..08a285d3b 100644
--- a/src/db/SimpleDatabasePlugin.cxx
+++ b/src/db/SimpleDatabasePlugin.cxx
@@ -27,6 +27,7 @@ extern "C" {
#include "db_save.h"
#include "db_lock.h"
#include "conf.h"
+#include "locate.h"
}
#include "directory.h"
@@ -247,7 +248,9 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
if (directory == NULL) {
struct song *song;
if (visit_song &&
- (song = GetSong(selection.uri, NULL)) != NULL)
+ (song = GetSong(selection.uri, NULL)) != NULL &&
+ (selection.match == NULL ||
+ locate_list_song_match(song, selection.match)))
return visit_song(*song, error_r);
g_set_error(error_r, db_quark(), DB_NOT_FOUND,
@@ -260,7 +263,7 @@ SimpleDatabase::Visit(const DatabaseSelection &selection,
return false;
db_lock();
- bool ret = directory->Walk(selection.recursive,
+ bool ret = directory->Walk(selection.recursive, selection.match,
visit_directory, visit_song, visit_playlist,
error_r);
db_unlock();