X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mood.c;h=4988c685490a32a61fcb1077a090388a1bed0ac3;hp=ce5c1c7e87fbd76d2ca3599309ce0eb3e0dbd691;hb=d9f939fe8a68267a62b68546b17e1ec9a34aab0b;hpb=b3ee0fa979a74e9d7a1497ec5a3ac8fa7cc7472b diff --git a/mood.c b/mood.c index ce5c1c7e..4988c685 100644 --- a/mood.c +++ b/mood.c @@ -47,7 +47,7 @@ struct afs_statistics statistics; * \sa struct mood_method, mood_parser. */ typedef int mood_score_function(const char *path, const struct afs_info *afsi, - const struct audio_format_info *afhi, const void *data); + const struct afh_info *afhi, const void *data); /** * Pre-process a mood line. @@ -172,7 +172,7 @@ static int mm_no_attributes_set_parser(const char *arg, __a_unused void **ignore static int mm_no_attributes_set_score_function(__a_unused const char *path, const struct afs_info *afsi, - __a_unused const struct audio_format_info *afhi, + __a_unused const struct afh_info *afhi, __a_unused const void *data) { if (!afsi->attributes) @@ -182,7 +182,7 @@ static int mm_no_attributes_set_score_function(__a_unused const char *path, static int mm_played_rarely_score_function(__a_unused const char *path, const struct afs_info *afsi, - __a_unused const struct audio_format_info *afhi, + __a_unused const struct afh_info *afhi, __a_unused const void *data) { unsigned num; @@ -205,7 +205,7 @@ static int mm_played_rarely_parser(const char *arg, __a_unused void **ignored) static int mm_name_like_score_function(const char *path, __a_unused const struct afs_info *afsi, - __a_unused const struct audio_format_info *afhi, + __a_unused const struct afh_info *afhi, const void *data) { if (fnmatch(data, path, 0)) @@ -238,7 +238,7 @@ static int mm_is_set_parser(const char *arg, void **bitnum) static int mm_is_set_score_function(__a_unused const char *path, __a_unused const struct afs_info *afsi, - __a_unused const struct audio_format_info *afhi, + __a_unused const struct afh_info *afhi, const void *data) { const unsigned char *bn = data; @@ -252,7 +252,7 @@ static int add_item_score(const struct osl_row *row, struct mood_item *item, lon long *score_arg_sum) { struct afs_info afsi; - struct audio_format_info afhi; + struct afh_info afhi; char *path; int ret; @@ -372,8 +372,11 @@ enum mood_line_type { ML_SCORE }; +/** Data passed to the parser of a mood line. */ struct mood_line_parser_data { + /** The mood this mood line belongs to. */ struct mood *m; + /** The line number in the mood definition. */ unsigned line_num; }; @@ -419,11 +422,13 @@ static int parse_mood_line(char *mood_line, void *data) w++; if (!*w) goto out; - if (!strcmp(*w, "with")) { - w++; - if (!*w) - goto out; - } + if (strcmp(*w, "with")) + goto check_for_if; + w++; + if (!*w) + goto out; + if (strcmp(*w, "score")) + goto out; } if (mlt == ML_SCORE || !strcmp(*w, "score")) { ret = -E_MOOD_SYNTAX; @@ -446,6 +451,7 @@ static int parse_mood_line(char *mood_line, void *data) w++; if (!*w) goto out; +check_for_if: if (!strcmp(*w, "if")) { ret = -E_MOOD_SYNTAX; w++;