com_stat(): Return a proper error message if an invalid option was given.
[paraslash.git] / mood.c
diff --git a/mood.c b/mood.c
index 540d0c70bc7d20b0951e0dffa5deb10c7394104c..cb1534bce4a243ce8ea4a10101a4c1a693300b3c 100644 (file)
--- a/mood.c
+++ b/mood.c
@@ -7,6 +7,7 @@
 /** \file mood.c Paraslash's mood handling functions. */
 
 #include <fnmatch.h>
+#include <osl.h>
 #include "para.h"
 #include "error.h"
 #include "string.h"
@@ -266,7 +267,6 @@ static int add_item_score(const struct osl_row *row, struct mood_item *item, lon
                ret = get_afhi_of_row(row, &afhi);
                if (ret< 0)
                        return ret;
-               free(afhi.info_string); /* don't need the tag info */
                ret = get_audio_file_path_of_row(row, &path);
                if (ret< 0)
                        return ret;
@@ -393,17 +393,17 @@ static int parse_mood_line(char *mood_line, void *data)
 {
        struct mood_line_parser_data *mlpd = data;
        char **argv;
-       char *delim = " \t";
        unsigned num_words;
        char **w;
        int i, ret;
        enum mood_line_type mlt = ML_INVALID;
        struct mood_item *mi = NULL;
-       char *buf = para_strdup(mood_line);
 
        mlpd->line_num++;
-       num_words = split_args(buf, &argv, delim);
-       ret = 1;
+       ret = create_argv(mood_line, " \t", &argv);
+       if (ret < 0)
+               return ret;
+       num_words = ret;
        if (!num_words) /* empty line */
                goto out;
        w = argv;
@@ -494,8 +494,7 @@ success:
                (mlt == ML_DENY? "deny" : "score"), mi->method);
        ret = 1;
 out:
-       free(argv);
-       free(buf);
+       free_argv(argv);
        if (ret >= 0)
                return ret;
        if (mi) {
@@ -972,7 +971,7 @@ int change_current_mood(char *mood_name)
                        .data = mood_name,
                        .size = strlen(mood_name) + 1
                };
-               ret = osl_get_row(moods_table, BLOBCOL_NAME, &obj, &row);
+               ret = osl(osl_get_row(moods_table, BLOBCOL_NAME, &obj, &row));
                if (ret < 0) {
                        PARA_NOTICE_LOG("no such mood: %s\n", mood_name);
                        return ret;