From ec88dffb6cde1b0e88c813e1676c8e989668fd9b Mon Sep 17 00:00:00 2001 From: Magnus Holmgren Date: Thu, 12 Apr 2007 19:11:39 +0000 Subject: Make resuming a directory bookmark more robust (e.g., when the directory no longer exists). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13131 a1c6a512-1295-4272-9138-f99709370657 --- apps/tree.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/tree.c b/apps/tree.c index 723c003ca9..4e4d4c7a9a 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -1191,19 +1191,28 @@ void bookmark_play(char *resume_file, int index, int offset, int seed, lastdir[0]='\0'; if (playlist_create(resume_file, NULL) != -1) { + char* peek_filename; resume_directory(resume_file); if (global_settings.playlist_shuffle) playlist_shuffle(seed, -1); /* Check if the file is at the same spot in the directory, else search for it */ - if ((strcmp(strrchr(playlist_peek(index),'/') + 1, - filename))) + peek_filename = playlist_peek(index); + + if (peek_filename == NULL) + return; + + if (strcmp(strrchr(peek_filename, '/') + 1, filename)) { for ( i=0; i < playlist_amount(); i++ ) { - if ((strcmp(strrchr(playlist_peek(i),'/') + 1, - filename)) == 0) + peek_filename = playlist_peek(i); + + if (peek_filename == NULL) + return; + + if (!strcmp(strrchr(peek_filename, '/') + 1, filename)) break; } if (i < playlist_amount()) -- cgit v1.2.3