summaryrefslogtreecommitdiff
path: root/apps/playlist_catalog.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playlist_catalog.c')
-rw-r--r--apps/playlist_catalog.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/playlist_catalog.c b/apps/playlist_catalog.c
index 01cbc31600..a20600b268 100644
--- a/apps/playlist_catalog.c
+++ b/apps/playlist_catalog.c
@@ -147,6 +147,7 @@ const char* catalog_get_directory(void)
147 If "view" mode is set then we're not adding anything into playlist. */ 147 If "view" mode is set then we're not adding anything into playlist. */
148static int display_playlists(char* playlist, bool view) 148static int display_playlists(char* playlist, bool view)
149{ 149{
150 static int most_recent_selection = 0;
150 struct browse_context browse; 151 struct browse_context browse;
151 char selected_playlist[MAX_PATH]; 152 char selected_playlist[MAX_PATH];
152 int result = -1; 153 int result = -1;
@@ -154,7 +155,7 @@ static int display_playlists(char* playlist, bool view)
154 browse_context_init(&browse, SHOW_M3U, 155 browse_context_init(&browse, SHOW_M3U,
155 BROWSE_SELECTONLY|(view? 0: BROWSE_NO_CONTEXT_MENU), 156 BROWSE_SELECTONLY|(view? 0: BROWSE_NO_CONTEXT_MENU),
156 str(LANG_CATALOG), NOICON, 157 str(LANG_CATALOG), NOICON,
157 playlist_dir, most_recent_playlist); 158 playlist_dir, playlist_dir_length + 1 + most_recent_playlist);
158 159
159 browse.buf = selected_playlist; 160 browse.buf = selected_playlist;
160 browse.bufsize = sizeof(selected_playlist); 161 browse.bufsize = sizeof(selected_playlist);
@@ -168,8 +169,12 @@ restart:
168 169
169 if (browse.flags & BROWSE_SELECTED) 170 if (browse.flags & BROWSE_SELECTED)
170 { 171 {
171 strmemccpy(most_recent_playlist, selected_playlist+playlist_dir_length+1, 172 if (strcmp(most_recent_playlist, selected_playlist)) /* isn't most recent one */
172 sizeof(most_recent_playlist)); 173 {
174 strmemccpy(most_recent_playlist, selected_playlist,
175 sizeof(most_recent_playlist));
176 most_recent_selection = 0;
177 }
173 178
174 if (view) 179 if (view)
175 { 180 {
@@ -179,7 +184,7 @@ restart:
179 result = 0; 184 result = 0;
180 else 185 else
181 { 186 {
182 switch (playlist_viewer_ex(selected_playlist)) { 187 switch (playlist_viewer_ex(selected_playlist, &most_recent_selection)) {
183 case PLAYLIST_VIEWER_OK: 188 case PLAYLIST_VIEWER_OK:
184 result = 0; 189 result = 0;
185 break; 190 break;