]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - afs.c
mood.c: Simplify and rename load_mood().
[paraslash.git] / afs.c
diff --git a/afs.c b/afs.c
index f9dd7583df42a3b5d8bf48fe36ccdea88020c3d4..72e7acccf3284fd4bb7d94697eb3d2ce70217d29 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -438,10 +438,7 @@ static int activate_mood_or_playlist(const char *arg, int *num_admissible,
                }
        } else {
                if (!strncmp(arg, "p/", 2)) {
-                       ret = playlist_open(arg + 2);
-                       if (ret < 0 && errmsg)
-                               *errmsg = make_message( "could not open %s",
-                                       arg);
+                       ret = playlist_open(arg + 2, errmsg);
                        mode = PLAY_MODE_PLAYLIST;
                } else if (!strncmp(arg, "m/", 2)) {
                        ret = change_current_mood(arg + 2, errmsg);
@@ -465,22 +462,15 @@ static int activate_mood_or_playlist(const char *arg, int *num_admissible,
         */
        if (arg != current_mop) {
                free(current_mop);
-               if (arg) {
-                       current_mop = para_strdup(arg);
-                       mutex_lock(mmd_mutex);
-                       strncpy(mmd->afs_mode_string, arg,
-                               sizeof(mmd->afs_mode_string));
-                       mmd->afs_mode_string[sizeof(mmd->afs_mode_string) - 1] = '\0';
-                       mmd->events++;
-                       mutex_unlock(mmd_mutex);
-               } else {
-                       mutex_lock(mmd_mutex);
-                       strcpy(mmd->afs_mode_string, "dummy");
-                       mmd->events++;
-                       mutex_unlock(mmd_mutex);
-                       current_mop = NULL;
-               }
+               current_mop = arg? para_strdup(arg) : NULL;
        }
+       /* Notify the server about the mood/playlist change. */
+       mutex_lock(mmd_mutex);
+       strncpy(mmd->afs_mode_string, arg? arg: "dummy",
+               sizeof(mmd->afs_mode_string));
+       mmd->afs_mode_string[sizeof(mmd->afs_mode_string) - 1] = '\0';
+       mmd->events++;
+       mutex_unlock(mmd_mutex);
        return 1;
 }