aboutsummaryrefslogtreecommitdiffstats
path: root/src/command/DatabaseCommands.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-10-26 16:13:35 +0200
committerMax Kellermann <max@duempel.org>2013-10-26 16:13:35 +0200
commita577944ab5a1f4d688e5901fa3efaf7cd1673588 (patch)
tree5404e650f399191ca8a2f9a7b28c266e5c98d7d6 /src/command/DatabaseCommands.cxx
parent17ec3b0c2d83da9cae3dc0e649cef2568d20e7c1 (diff)
downloadmpd-a577944ab5a1f4d688e5901fa3efaf7cd1673588.tar.gz
mpd-a577944ab5a1f4d688e5901fa3efaf7cd1673588.tar.xz
mpd-a577944ab5a1f4d688e5901fa3efaf7cd1673588.zip
command: new commands "findin", "searchin" with base URI
Diffstat (limited to 'src/command/DatabaseCommands.cxx')
-rw-r--r--src/command/DatabaseCommands.cxx21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/command/DatabaseCommands.cxx b/src/command/DatabaseCommands.cxx
index b86cbdae7..16e10b4de 100644
--- a/src/command/DatabaseCommands.cxx
+++ b/src/command/DatabaseCommands.cxx
@@ -55,7 +55,8 @@ handle_lsinfo2(Client &client, int argc, char *argv[])
}
static CommandResult
-handle_match(Client &client, int argc, char *argv[], bool fold_case)
+handle_match(Client &client, int argc, char *argv[],
+ const char *uri, bool fold_case)
{
SongFilter filter;
if (!filter.Parse(argc - 1, argv + 1, fold_case)) {
@@ -63,7 +64,7 @@ handle_match(Client &client, int argc, char *argv[], bool fold_case)
return CommandResult::ERROR;
}
- const DatabaseSelection selection("", true, &filter);
+ const DatabaseSelection selection(uri, true, &filter);
Error error;
return db_selection_print(client, selection, true, error)
@@ -74,13 +75,25 @@ handle_match(Client &client, int argc, char *argv[], bool fold_case)
CommandResult
handle_find(Client &client, int argc, char *argv[])
{
- return handle_match(client, argc, argv, false);
+ return handle_match(client, argc, argv, "", false);
+}
+
+CommandResult
+handle_find_in(Client &client, int argc, char *argv[])
+{
+ return handle_match(client, argc - 1, argv + 1, argv[1], false);
}
CommandResult
handle_search(Client &client, int argc, char *argv[])
{
- return handle_match(client, argc, argv, true);
+ return handle_match(client, argc, argv, "", true);
+}
+
+CommandResult
+handle_search_in(Client &client, int argc, char *argv[])
+{
+ return handle_match(client, argc - 1, argv + 1, argv[1], true);
}
static CommandResult