/** \file mood.c Paraslash's mood handling functions. */
#include <fnmatch.h>
+#include <osl.h>
#include "para.h"
#include "error.h"
#include "string.h"
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;
{
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;
(mlt == ML_DENY? "deny" : "score"), mi->method);
ret = 1;
out:
- free(argv);
- free(buf);
+ free_argv(argv);
if (ret >= 0)
return ret;
if (mi) {
struct osl_object mood_def;
struct mood_line_parser_data mlpd = {.line_num = 0};
- int ret2, ret = mood_get_name_and_def_by_row(mood_row, &mood_name, &mood_def);
+ int ret = mood_get_name_and_def_by_row(mood_row, &mood_name, &mood_def);
if (ret < 0) {
- ret2 = para_printf(pb, "failed to get mood definition: %s\n",
+ para_printf(pb, "failed to get mood definition: %s\n",
para_strerror(-ret));
return ret;
}
ret = for_each_line_ro(mood_def.data, mood_def.size,
parse_mood_line, &mlpd);
if (ret < 0)
- ret2 = para_printf(pb, "%s line %u: %s\n", mood_name, mlpd.line_num,
+ para_printf(pb, "%s line %u: %s\n", mood_name, mlpd.line_num,
para_strerror(-ret));
out:
osl_close_disk_object(&mood_def);
.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;