From 585965bd9360ab0782851107e8edb50015a08b04 Mon Sep 17 00:00:00 2001 From: jdgordon Date: Sun, 25 May 2008 07:13:13 +0000 Subject: [PATCH] Fix part of FS#9032 - "create playlist" appends the playlist instead of overwriting it... not sure about the speed issue. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17628 a1c6a512-1295-4272-9138-f99709370657 --- apps/playlist_catalog.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/playlist_catalog.c b/apps/playlist_catalog.c index ac86f4810..c7458f835 100644 --- a/apps/playlist_catalog.c +++ b/apps/playlist_catalog.c @@ -323,12 +323,19 @@ static int add_track_to_playlist(char* filename, void* context) /* Add "sel" file into specified "playlist". How to insert depends on type of file */ -static int add_to_playlist(const char* playlist, const char* sel, int sel_attr) +static int add_to_playlist(const char* playlist, bool new_playlist, + const char* sel, int sel_attr) { int fd; int result = -1; + int flags = O_CREAT|O_WRONLY; - fd = open(playlist, O_CREAT|O_WRONLY|O_APPEND); + if (new_playlist) + flags |= O_TRUNC; + else + flags |= O_APPEND; + + fd = open(playlist, flags); if(fd < 0) return result; @@ -452,7 +459,7 @@ bool catalog_add_to_a_playlist(const char* sel, int sel_attr, return false; } - if (add_to_playlist(playlist, sel, sel_attr) == 0) + if (add_to_playlist(playlist, new_playlist, sel, sel_attr) == 0) { strncpy(most_recent_playlist, playlist+playlist_dir_length+1, sizeof(most_recent_playlist)); -- 2.11.4.GIT