diff options
Diffstat (limited to 'apps/playlist_catalog.c')
-rw-r--r-- | apps/playlist_catalog.c | 13 |
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. */ |
148 | static int display_playlists(char* playlist, bool view) | 148 | static 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; |