summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2024-10-08 22:44:21 +0200
committerChristian Soffke <christian.soffke@gmail.com>2024-10-26 11:28:22 -0400
commit04a796fd15f582e38c0216f45a22c572b365457a (patch)
tree39d284cd2ed9715f7b361190cbc12304d99bd3ac /apps
parent7592d2ca5eab2e684f45b7a7163f1594f3c36c96 (diff)
downloadrockbox-04a796fd15f582e38c0216f45a22c572b365457a.tar.gz
rockbox-04a796fd15f582e38c0216f45a22c572b365457a.zip
playlist: create_control_unlocked: back up current playlist
When creating a new control file for the current playlist, the existing file will now be renamed to serve as a backup, until the next time the control file is replaced again, allowing you to restore the previous state of the playlist, in case you accidentally cleared it. This also means that an entirely new file is created each time, instead of truncating the existing one. Change-Id: I2fd96eb8c3940b85df807fd7646dc0359a036351
Diffstat (limited to 'apps')
-rw-r--r--apps/playlist.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/apps/playlist.c b/apps/playlist.c
index 23d3355708..f1edfe7323 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -367,6 +367,9 @@ static int convert_m3u_name(char* buf, int buf_len, int buf_max, char* temp)
367 */ 367 */
368static void create_control_unlocked(struct playlist_info* playlist) 368static void create_control_unlocked(struct playlist_info* playlist)
369{ 369{
370 if (playlist == &current_playlist && file_exists(PLAYLIST_CONTROL_FILE))
371 rename(PLAYLIST_CONTROL_FILE, PLAYLIST_CONTROL_FILE".old");
372
370 playlist->control_fd = open(playlist->control_filename, 373 playlist->control_fd = open(playlist->control_filename,
371 O_CREAT|O_RDWR|O_TRUNC, 0666); 374 O_CREAT|O_RDWR|O_TRUNC, 0666);
372 375