From: Zbigniew Jędrzejewski-Szmek Date: Tue, 16 Apr 2013 01:33:43 +0000 (-0400) Subject: core/main: generate 4 parsing functions from a macro X-Git-Tag: v202~63 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=799de03f51def1cb3cea376c2e3e783c721c9b89 core/main: generate 4 parsing functions from a macro --- diff --git a/src/core/main.c b/src/core/main.c index 789976108..f0b415254 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -421,77 +421,30 @@ static int parse_proc_cmdline_word(const char *word) { return 0; } -static int config_parse_level2( - const char *filename, - unsigned line, - const char *section, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - assert(filename); - assert(lvalue); - assert(rvalue); - - log_set_max_level_from_string(rvalue); - return 0; -} - -static int config_parse_target( - const char *filename, - unsigned line, - const char *section, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - assert(filename); - assert(lvalue); - assert(rvalue); - - log_set_target_from_string(rvalue); - return 0; +#define DEFINE_SETTER(name, func) \ + static int name( \ + const char *filename, \ + unsigned line, \ + const char *section, \ + const char *lvalue, \ + int ltype, \ + const char *rvalue, \ + void *data, \ + void *userdata) { \ + \ + assert(filename); \ + assert(lvalue); \ + assert(rvalue); \ + \ + func(rvalue); \ + return 0; \ } -static int config_parse_color( - const char *filename, - unsigned line, - const char *section, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - assert(filename); - assert(lvalue); - assert(rvalue); - - log_show_color_from_string(rvalue); - return 0; -} +DEFINE_SETTER(config_parse_level2, log_set_max_level_from_string) +DEFINE_SETTER(config_parse_target, log_set_target_from_string) +DEFINE_SETTER(config_parse_color, log_show_color_from_string) +DEFINE_SETTER(config_parse_location, log_show_location_from_string) -static int config_parse_location( - const char *filename, - unsigned line, - const char *section, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - assert(filename); - assert(lvalue); - assert(rvalue); - - log_show_location_from_string(rvalue); - return 0; -} static int config_parse_cpu_affinity2( const char *filename,