]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - afs.c
afs ls -lv: Also print the tag info.
[paraslash.git] / afs.c
diff --git a/afs.c b/afs.c
index e109d6c1bef5dbc5e53696dfa2632a55f57b38d5..cafe9b474d11be29ba911c929d43fb9e05b60b8e 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -476,7 +476,7 @@ static enum play_mode init_admissible_files(void)
        given_playlist = "given_playlist";
 
        if (given_mood) {
-               ret = mood_open(given_mood);
+               ret = change_current_mood(given_mood);
                if (ret >= 0) {
                        if (given_playlist)
                                PARA_WARNING_LOG("ignoring playlist %s\n",
@@ -489,10 +489,10 @@ static enum play_mode init_admissible_files(void)
                if (ret >= 0)
                        return PLAY_MODE_PLAYLIST;
        }
-       ret = mood_open(NULL); /* open first available mood */
+       ret = change_current_mood(NULL); /* open first available mood */
        if (ret >= 0)
                return PLAY_MODE_MOOD;
-       mood_open(""); /* open dummy mood, always successful */
+       change_current_mood(""); /* open dummy mood, always successful */
        return PLAY_MODE_MOOD;
 }
 
@@ -533,7 +533,7 @@ static void close_afs_tables(enum osl_close_flags flags)
        PARA_NOTICE_LOG("closing afs_tables\n");
        score_shutdown(flags);
        attribute_shutdown(flags);
-       mood_close();
+       close_current_mood();
        playlist_close();
        moods_shutdown(flags);
        playlists_shutdown(flags);
@@ -556,10 +556,10 @@ static void signal_post_select(struct sched *s, struct task *t)
        if (!FD_ISSET(st->fd, &s->rfds))
                return;
        st->signum = para_next_signal();
-       PARA_NOTICE_LOG("caught signal %d\n", st->signum);
        t->ret = 1;
        if (st->signum == SIGUSR1)
                return; /* ignore SIGUSR1 */
+       PARA_NOTICE_LOG("caught signal %d\n", st->signum);
        t->ret = -E_SIGNAL_CAUGHT;
        unregister_tasks();
 }
@@ -919,5 +919,16 @@ int com_check(int fd, int argc, char * const * const argv)
                                return ret;
                }
        }
+       if (flags & CHECK_MOODS) {
+               ret = send_callback_request(mood_check_callback, NULL, &result);
+               if (ret < 0)
+                       return ret;
+               if (ret > 0) {
+                       ret = send_buffer(fd, (char *) result.data);
+                       free(result.data);
+                       if (ret < 0)
+                               return ret;
+               }
+       }
        return 1;
 }