aboutsummaryrefslogtreecommitdiffstats
path: root/src/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/command.c')
-rw-r--r--src/command.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/command.c b/src/command.c
index f60f4e69e..518bf5f0d 100644
--- a/src/command.c
+++ b/src/command.c
@@ -19,7 +19,10 @@
#include "command.h"
#include "playlist.h"
#include "ls.h"
+#include "database.h"
#include "directory.h"
+#include "directory_print.h"
+#include "update.h"
#include "volume.h"
#include "stats.h"
#include "myfprintf.h"
@@ -556,15 +559,18 @@ static int handleLsInfo(int fd, mpd_unused int *permission,
int argc, char *argv[])
{
const char *path = "";
+ const struct directory *dir;
if (argc == 2)
path = argv[1];
- if (printDirectoryInfo(fd, path) < 0) {
+ if (!(dir = db_get_directory(path))) {
commandError(fd, ACK_ERROR_NO_EXIST, "directory not found");
return -1;
}
+ directory_print(fd, dir);
+
if (isRootDirectory(path))
return lsPlaylists(fd, path);
@@ -781,14 +787,12 @@ static int handlePlaylistMove(int fd, mpd_unused int *permission,
static int print_update_result(int fd, int ret)
{
- if (ret >= 0) {
+ if (ret > 0) {
fdprintf(fd, "updating_db: %i\n", ret);
return 0;
}
- if (ret == -2)
- commandError(fd, ACK_ERROR_ARG, "invalid path");
- else
- commandError(fd, ACK_ERROR_UPDATE_ALREADY, "already updating");
+ assert(!ret);
+ commandError(fd, ACK_ERROR_UPDATE_ALREADY, "already updating");
return -1;
}