diff --git a/include/haproxy/tools-t.h b/include/haproxy/tools-t.h index 34e2fd818..ef3e136a4 100644 --- a/include/haproxy/tools-t.h +++ b/include/haproxy/tools-t.h @@ -47,15 +47,20 @@ /* return the largest possible integer of type , with all bits set */ #define MAX_RANGE(ret) (~(typeof(ret))0) +/* DEFVAL() returns either the second argument as-is, or if absent. This + * is for use in macros arguments. + */ +#define DEFVAL(_def,...) _FIRST_ARG(NULL, ##__VA_ARGS__, (_def)) + /* DEFNULL() returns either the argument as-is, or NULL if absent. This is for * use in macros arguments. */ -#define DEFNULL(...) _FIRST_ARG(NULL, ##__VA_ARGS__, NULL) +#define DEFNULL(...) DEFVAL(NULL, ##__VA_ARGS__) /* DEFZERO() returns either the argument as-is, or 0 if absent. This is for * use in macros arguments. */ -#define DEFZERO(...) _FIRST_ARG(NULL, ##__VA_ARGS__, 0) +#define DEFZERO(...) DEFVAL(0, ##__VA_ARGS__) #define _FIRST_ARG(a, b, ...) b