From: Andre Noll Date: Sat, 29 Sep 2007 13:32:12 +0000 (+0200) Subject: mood.c: Introduce DEFINE_MOOD_METHOD and DEFINE_MOOD_METHOD_WITH_CLEANUP. X-Git-Tag: v0.3.0~320 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=8e2e8dff8f30520c5ba33928992f112a053b920d;p=paraslash.git mood.c: Introduce DEFINE_MOOD_METHOD and DEFINE_MOOD_METHOD_WITH_CLEANUP. This simplifies the definition of the mood_methods array. --- diff --git a/mood.c b/mood.c index b7ee99eb..fdf8cdce 100644 --- a/mood.c +++ b/mood.c @@ -310,31 +310,21 @@ static int compute_mood_score(const struct osl_row *aft_row, struct mood *m, return 1; } +#define DEFINE_MOOD_METHOD(_name) \ +.parser = mm_ ## _name ## _parser, \ +.score_function = mm_ ## _name ## _score_function, \ +.name = #_name + +#define DEFINE_MOOD_METHOD_WITH_CLEANUP(_name) \ + DEFINE_MOOD_METHOD(_name), \ + .cleanup = mm_ ## _name ## _cleanup + static const struct mood_method mood_methods[] = { -{ - .parser = mm_no_attributes_set_parser, - .score_function = mm_no_attributes_set_score_function, - .name = "no_attributes_set" -}, -{ - .parser = mm_played_rarely_parser, - .score_function = mm_played_rarely_score_function, - .name = "played_rarely" -}, -{ - .parser = mm_is_set_parser, - .score_function = mm_is_set_score_function, - .name = "is_set" -}, -{ - .parser = mm_name_like_parser, - .score_function = mm_name_like_score_function, - .cleanup = mm_name_like_cleanup, - .name = "name_like" -}, -{ - .parser = NULL -} + {DEFINE_MOOD_METHOD(no_attributes_set)}, + {DEFINE_MOOD_METHOD(played_rarely)}, + {DEFINE_MOOD_METHOD(is_set)}, + {DEFINE_MOOD_METHOD_WITH_CLEANUP(name_like)}, + {.parser = NULL} }; static void cleanup_list_entry(struct mood_item *item)