mood.c: Don't try twice to activate an invalid mood.
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 9 Jul 2017 21:31:43 +0000 (23:31 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sat, 12 Aug 2017 18:18:13 +0000 (20:18 +0200)
(Re-)loading a mood by executing the "select" server command fails
if the mood definition is invalid. In this case we first try to
switch back to the old mood, and if this also fails, fall back to
the dummy mood.

If the mood which is currently active has been replaced by an invalid
mood, switching back to the old mood is pointless because this will
try to load the same invalid mood again.

This commit modifies the select callback to load the old mood only
if it is different from the new mood.

afs.c

diff --git a/afs.c b/afs.c
index fc93675a5484196ea181967ae36b5cb338222fdb..4857f9bc60a5dece83b20a6be0ba205bd1f03c92 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -580,7 +580,7 @@ static int com_select_callback(struct afs_callback_arg *aca)
                goto out;
        /* ignore subsequent errors (but log them) */
        para_printf(&aca->pbout, "could not activate %s\n", arg);
-       if (current_mop) {
+       if (current_mop && strcmp(current_mop, arg) != 0) {
                int ret2;
                para_printf(&aca->pbout, "switching back to %s\n", current_mop);
                ret2 = activate_mood_or_playlist(current_mop, &num_admissible);