diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -261,7 +261,6 @@ int main (int argc, char **argv) { curSong = ph.playlist; /* play first track */ while (!doQuit) { - PianoSong_t *lastSong = NULL; pthread_t playerThread; printf ("\"%s\" by \"%s\"%s\n", curSong->title, curSong->artist, (curSong->rating == PIANO_RATE_LOVE) ? " (Loved)" : ""); @@ -294,6 +293,7 @@ int main (int argc, char **argv) { } /* pandora does this too, I think */ PianoDestroyPlaylist (&ph); + curSong = NULL; break; case 'd': @@ -306,6 +306,7 @@ int main (int argc, char **argv) { player.doQuit = 1; printf ("Deleted.\n"); PianoDestroyPlaylist (&ph); + curSong = NULL; curStation = selectStation (&ph); } else { printf ("Error while deleting station.\n"); @@ -353,6 +354,7 @@ int main (int argc, char **argv) { case 's': player.doQuit = 1; PianoDestroyPlaylist (&ph); + curSong = NULL; curStation = selectStation (&ph); printf ("changed station to %s\n", curStation->name); break; @@ -363,8 +365,9 @@ int main (int argc, char **argv) { free (player.url); /* what's next? */ - lastSong = curSong; - curSong = lastSong->next; + if (curSong != NULL) { + curSong = curSong->next; + } if (curSong == NULL && !doQuit) { printf ("receiving new playlist\n"); PianoDestroyPlaylist (&ph); |