diff options
author | Max Kellermann <max@duempel.org> | 2008-09-07 13:37:04 +0200 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-09-09 00:55:38 -0700 |
commit | b3a40661ffb4a0da1aefc7e7151bbf9e82f23cef (patch) | |
tree | f2016249d1b4745311e5ccb89a5c0dcc1708a860 | |
parent | 57b17b7e6585fc9dfdaee10e31441e39354a4422 (diff) | |
download | mpd-b3a40661ffb4a0da1aefc7e7151bbf9e82f23cef.tar.gz mpd-b3a40661ffb4a0da1aefc7e7151bbf9e82f23cef.tar.xz mpd-b3a40661ffb4a0da1aefc7e7151bbf9e82f23cef.zip |
playlist: added is_valid_playlist_name()
The function valid_playlist_name() checks the name, but it insists on
reporting an eventual error to the client. The new function
is_valid_playlist_name() is more generic: it just returns a boolean,
and does not care what the caller will use it for. The old function
valid_playlist_name() will be removed later.
-rw-r--r-- | src/playlist.c | 11 | ||||
-rw-r--r-- | src/playlist.h | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/playlist.c b/src/playlist.c index 629742aa3..1a286f67a 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -1553,11 +1553,16 @@ void findSongsInPlaylist(int fd, int numItems, LocateTagItem * items) * protocol (and compatibility with all clients) to support idiots who * put '\r' and '\n' in filenames isn't going to happen, either. */ +int is_valid_playlist_name(const char *utf8path) +{ + return strchr(utf8path, '/') == NULL && + strchr(utf8path, '\n') == NULL && + strchr(utf8path, '\r') == NULL; +} + int valid_playlist_name(int err_fd, const char *utf8path) { - if (strchr(utf8path, '/') || - strchr(utf8path, '\n') || - strchr(utf8path, '\r')) { + if (!is_valid_playlist_name(utf8path)) { commandError(err_fd, ACK_ERROR_ARG, "playlist name \"%s\" is " "invalid: playlist names may not contain slashes," " newlines or carriage returns", diff --git a/src/playlist.h b/src/playlist.h index c144d4ab4..83b02fd08 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -126,6 +126,8 @@ void searchForSongsInPlaylist(int fd, int numItems, LocateTagItem * items); void findSongsInPlaylist(int fd, int numItems, LocateTagItem * items); +int is_valid_playlist_name(const char *utf8path); + int valid_playlist_name(int err_fd, const char *utf8path); struct mpd_tag *playlist_current_tag(void); |