diff options
Diffstat (limited to 'apps/menus/playlist_menu.c')
-rw-r--r-- | apps/menus/playlist_menu.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/apps/menus/playlist_menu.c b/apps/menus/playlist_menu.c index 0983f9c338..49ff56795a 100644 --- a/apps/menus/playlist_menu.c +++ b/apps/menus/playlist_menu.c | |||
@@ -51,19 +51,33 @@ int save_playlist_screen(struct playlist_info* playlist) | |||
51 | uint32_t resume_elapsed; | 51 | uint32_t resume_elapsed; |
52 | uint32_t resume_offset; | 52 | uint32_t resume_offset; |
53 | 53 | ||
54 | char temp[MAX_PATH+1], *dot; | 54 | char temp[MAX_PATH+1], *p; |
55 | int len; | 55 | int len; |
56 | 56 | ||
57 | playlist_get_name(playlist, temp, sizeof(temp)-1); | 57 | playlist_get_name(playlist, temp, sizeof(temp)-1); |
58 | 58 | ||
59 | len = strlen(temp); | 59 | len = strlen(temp); |
60 | dot = strrchr(temp, '.'); | ||
61 | 60 | ||
62 | if (!dot && len <= 1) | 61 | if (len <= 1) /* root or dynamic playlist */ |
63 | { | 62 | { |
64 | catalog_get_directory(temp, sizeof(temp)); | 63 | catalog_get_directory(temp, sizeof(temp)); |
65 | strlcat(temp, DEFAULT_DYNAMIC_PLAYLIST_NAME, sizeof(temp)); | 64 | strlcat(temp, DEFAULT_DYNAMIC_PLAYLIST_NAME, sizeof(temp)); |
66 | } | 65 | } |
66 | else if (!strcmp((temp + len - 1), "/")) /* dir playlists other than root */ | ||
67 | { | ||
68 | temp[len - 1] = '\0'; | ||
69 | catalog_get_directory(directoryonly, sizeof(directoryonly)); | ||
70 | |||
71 | if ((p = strrchr(temp, '/'))) /* use last path component as playlist name */ | ||
72 | { | ||
73 | strlcat(directoryonly, p, sizeof(directoryonly)); | ||
74 | strlcat(directoryonly, ".m3u8", sizeof(directoryonly)); | ||
75 | } | ||
76 | else | ||
77 | strlcat(directoryonly, DEFAULT_DYNAMIC_PLAYLIST_NAME, sizeof(directoryonly)); | ||
78 | |||
79 | strmemccpy(temp, directoryonly, sizeof(temp)); | ||
80 | } | ||
67 | 81 | ||
68 | if (catalog_pick_new_playlist_name(temp, sizeof(temp), | 82 | if (catalog_pick_new_playlist_name(temp, sizeof(temp), |
69 | playlist ? playlist->filename : | 83 | playlist ? playlist->filename : |