summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mapper.c2
-rw-r--r--src/mapper.h2
-rw-r--r--src/stored_playlist.c11
3 files changed, 6 insertions, 9 deletions
diff --git a/src/mapper.c b/src/mapper.c
index 8de2032d9..28471e60e 100644
--- a/src/mapper.c
+++ b/src/mapper.c
@@ -203,7 +203,7 @@ map_spl_path(void)
char *
map_spl_utf8_to_fs(const char *name)
{
- char *filename = g_strconcat(name, "." PLAYLIST_FILE_SUFFIX, NULL);
+ char *filename = g_strconcat(name, PLAYLIST_FILE_SUFFIX, NULL);
char *path;
if (playlist_dir == NULL)
diff --git a/src/mapper.h b/src/mapper.h
index 874add377..fc4101853 100644
--- a/src/mapper.h
+++ b/src/mapper.h
@@ -25,7 +25,7 @@
#include <stdbool.h>
-#define PLAYLIST_FILE_SUFFIX "m3u"
+#define PLAYLIST_FILE_SUFFIX ".m3u"
struct directory;
struct song;
diff --git a/src/stored_playlist.c b/src/stored_playlist.c
index 941702835..26dcb34d3 100644
--- a/src/stored_playlist.c
+++ b/src/stored_playlist.c
@@ -42,14 +42,11 @@ load_playlist_info(const char *parent_path_fs, const char *name_fs)
struct stat st;
struct stored_playlist_info *playlist;
- if (name_length < 1 + sizeof(PLAYLIST_FILE_SUFFIX) ||
+ if (name_length < sizeof(PLAYLIST_FILE_SUFFIX) ||
memchr(name_fs, '\n', name_length) != NULL)
return NULL;
- if (name_fs[name_length - sizeof(PLAYLIST_FILE_SUFFIX)] != '.' ||
- memcmp(name_fs + name_length - sizeof(PLAYLIST_FILE_SUFFIX) + 1,
- PLAYLIST_FILE_SUFFIX,
- sizeof(PLAYLIST_FILE_SUFFIX) - 1) != 0)
+ if (!g_str_has_suffix(name_fs, PLAYLIST_FILE_SUFFIX))
return NULL;
path_fs = g_build_filename(parent_path_fs, name_fs, NULL);
@@ -58,8 +55,8 @@ load_playlist_info(const char *parent_path_fs, const char *name_fs)
if (ret < 0 || !S_ISREG(st.st_mode))
return NULL;
- name = g_strdup(name_fs);
- name[name_length - sizeof(PLAYLIST_FILE_SUFFIX)] = 0;
+ name = g_strndup(name_fs,
+ name_length + 1 - sizeof(PLAYLIST_FILE_SUFFIX));
name_utf8 = fs_charset_to_utf8(name);
g_free(name);
if (name_utf8 == NULL)