diff options
Diffstat (limited to '')
-rw-r--r-- | src/command/FileCommands.cxx | 13 | ||||
-rw-r--r-- | src/command/QueueCommands.cxx | 15 |
2 files changed, 15 insertions, 13 deletions
diff --git a/src/command/FileCommands.cxx b/src/command/FileCommands.cxx index 789aa1f28..1e0f9c585 100644 --- a/src/command/FileCommands.cxx +++ b/src/command/FileCommands.cxx @@ -202,11 +202,22 @@ read_file_comments(Client &client, const Path path_fs) } +static const char * +translate_uri(const char *uri) +{ + if (memcmp(uri, "file:///", 8) == 0) + /* drop the "file://", leave only an absolute path + (starting with a slash) */ + return uri + 7; + + return uri; +} + CommandResult handle_read_comments(Client &client, ConstBuffer<const char *> args) { assert(args.size == 1); - const char *const uri = args.front(); + const char *const uri = translate_uri(args.front()); if (memcmp(uri, "file:///", 8) == 0) { /* read comments from arbitrary local file */ diff --git a/src/command/QueueCommands.cxx b/src/command/QueueCommands.cxx index 20634652a..d461170fd 100644 --- a/src/command/QueueCommands.cxx +++ b/src/command/QueueCommands.cxx @@ -43,18 +43,13 @@ #include <string.h> static const char * -translate_uri(Client &client, const char *uri) +translate_uri(const char *uri) { if (memcmp(uri, "file:///", 8) == 0) /* drop the "file://", leave only an absolute path (starting with a slash) */ return uri + 7; - if (PathTraitsUTF8::IsAbsolute(uri)) { - command_error(client, ACK_ERROR_NO_EXIST, "Malformed URI"); - return nullptr; - } - return uri; } @@ -70,9 +65,7 @@ handle_add(Client &client, ConstBuffer<const char *> args) here */ uri = ""; - uri = translate_uri(client, uri); - if (uri == nullptr) - return CommandResult::ERROR; + uri = translate_uri(uri); if (uri_has_scheme(uri) || PathTraitsUTF8::IsAbsolute(uri)) { const SongLoader loader(client); @@ -101,9 +94,7 @@ handle_add(Client &client, ConstBuffer<const char *> args) CommandResult handle_addid(Client &client, ConstBuffer<const char *> args) { - const char *const uri = translate_uri(client, args.front()); - if (uri == nullptr) - return CommandResult::ERROR; + const char *const uri = translate_uri(args.front()); const SongLoader loader(client); Error error; |