Commit Diff


commit - b21ec899d80b2b7298539334801e73b617cbea3c
commit + f3bd773be6486fa2c212ff27aee53e3894bcc51d
blob - 9bfc968d47ef5e4636bfbe75f08f8d0e019269cc
blob + 7a497cb76d52cdc04d9d58b1c16cd36960337a11
--- amused.c
+++ amused.c
@@ -161,8 +161,12 @@ main_dispatch_player(int sig, short event, void *d)
 		switch (imsg.hdr.type) {
 		case IMSG_ERR:
 			playlist_dropcurrent();
-			/* fallthrough */
+			main_playlist_advance();
+			break;
 		case IMSG_EOF:
+			if (repeat_one && current_song != NULL)
+				if (main_play_song(current_song))
+					break;
 			main_playlist_advance();
 			break;
 
blob - 6d19ff8fea09b2fed1dfd8223e6cbd51b3f79ea8
blob + a11b339bdc978e30d749022cfe6e17ca634bca8f
--- amused.h
+++ amused.h
@@ -108,6 +108,7 @@ void		imsg_event_add(struct imsgev *iev);
 int		imsg_compose_event(struct imsgev *, uint16_t, uint32_t,
 		    pid_t, int, const void *, uint16_t);
 int		main_send_player(uint16_t, int, const void *, uint16_t);
+int		main_play_song(const char *);
 void		main_playlist_jump(struct imsgev *, struct imsg *);
 void		main_playlist_resume(void);
 void		main_playlist_advance(void);