diff options
author | Magnus Holmgren <magnushol@gmail.com> | 2006-12-03 20:45:12 +0000 |
---|---|---|
committer | Magnus Holmgren <magnushol@gmail.com> | 2006-12-03 20:45:12 +0000 |
commit | dc956ce993ad01d8304415d4524f4217198a3102 (patch) | |
tree | b0eac8b043389fc4ae99d285fa883c0c4cbd21ef /apps/playlist_menu.c | |
parent | ec14b0f989fce4f295df8882ce0509b5599dfca4 (diff) | |
download | rockbox-dc956ce993ad01d8304415d4524f4217198a3102.tar.gz rockbox-dc956ce993ad01d8304415d4524f4217198a3102.zip |
Make playlist catalog and playlist save screen handle .m3u/.m3u8 better. Also fix a possible null-pointer case in the playlist save screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11654 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playlist_menu.c')
-rw-r--r-- | apps/playlist_menu.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/apps/playlist_menu.c b/apps/playlist_menu.c index 5e73621a22..2874c3b0d2 100644 --- a/apps/playlist_menu.c +++ b/apps/playlist_menu.c | |||
@@ -79,19 +79,21 @@ bool playlist_menu(void) | |||
79 | 79 | ||
80 | int save_playlist_screen(struct playlist_info* playlist) | 80 | int save_playlist_screen(struct playlist_info* playlist) |
81 | { | 81 | { |
82 | char* filename; | ||
83 | char temp[MAX_PATH+1]; | 82 | char temp[MAX_PATH+1]; |
84 | int len; | 83 | int len; |
85 | 84 | ||
86 | filename = playlist_get_name(playlist, temp, sizeof(temp)); | 85 | playlist_get_name(playlist, temp, sizeof(temp)); |
86 | len = strlen(temp); | ||
87 | 87 | ||
88 | if (!filename || (len=strlen(filename)) <= 5 || | 88 | if (len > 4 && !strcasecmp(&temp[len-4], ".m3u")) |
89 | strcasecmp(&filename[len-5], ".m3u8")) | 89 | strcat(temp, "8"); |
90 | strcpy(filename, DEFAULT_DYNAMIC_PLAYLIST_NAME); | 90 | |
91 | if (len <= 5 || strcasecmp(&temp[len-5], ".m3u8")) | ||
92 | strcpy(temp, DEFAULT_DYNAMIC_PLAYLIST_NAME); | ||
91 | 93 | ||
92 | if (!kbd_input(filename, sizeof(temp))) | 94 | if (!kbd_input(temp, sizeof(temp))) |
93 | { | 95 | { |
94 | playlist_save(playlist, filename); | 96 | playlist_save(playlist, temp); |
95 | 97 | ||
96 | /* reload in case playlist was saved to cwd */ | 98 | /* reload in case playlist was saved to cwd */ |
97 | reload_directory(); | 99 | reload_directory(); |