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); \
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); \
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