From: Thadeu Lima de Souza Cascardo Date: Sun, 3 May 2015 22:12:20 +0000 (+0000) Subject: Permite um sufixo diferente para variáveis e comandos diferentes. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fdeclara.git;a=commitdiff_plain;h=22c114ed199d0f2d0f9d7479b04fa6e9745481ac Permite um sufixo diferente para variáveis e comandos diferentes. Define macros SET_INT_ e SET_STRING_, que permitem um sufixo e comando dfierente do nome do atributo utilizado. --- diff --git a/util.h b/util.h index cf5effb..72b66a0 100644 --- a/util.h +++ b/util.h @@ -23,8 +23,8 @@ int set_llong(char *str, long long *val); int set_int(char **args, int argc, int *val); int set_string(char **args, int argc, char **str); -#define SET_INT(attr) \ -static int run_##attr(struct declaracao *dec, char **args, int argc) \ +#define SET_INT_(suffix, command, attr) \ +static int run_##suffix(struct declaracao *dec, char **args, int argc) \ { \ int val; \ int r = set_int(args, argc, &val); \ @@ -33,13 +33,15 @@ static int run_##attr(struct declaracao *dec, char **args, int argc) \ dec->attr = val; \ return 0; \ } \ -static struct cmd cmd_##attr = { \ - .name = #attr, \ - .run = run_##attr, \ +static struct cmd cmd_##suffix = { \ + .name = #command, \ + .run = run_##suffix, \ }; -#define SET_STRING(attr) \ -static int run_##attr(struct declaracao *dec, char **args, int argc) \ +#define SET_INT(attr) SET_INT_(attr, attr, attr) + +#define SET_STRING_(suffix, command, attr) \ +static int run_##suffix(struct declaracao *dec, char **args, int argc) \ { \ char *val; \ int r = set_string(args, argc, &val); \ @@ -48,9 +50,11 @@ static int run_##attr(struct declaracao *dec, char **args, int argc) \ dec->attr = val; \ return 0; \ } \ -static struct cmd cmd_##attr = { \ - .name = #attr, \ - .run = run_##attr, \ +static struct cmd cmd_##suffix = { \ + .name = #command, \ + .run = run_##suffix, \ } +#define SET_STRING(attr) SET_STRING_(attr, attr, attr) + #endif