Skip to content

Commit

Permalink
MINOR: tools: add a new macro DEFVAL() to provide a default argument
Browse files Browse the repository at this point in the history
This is like DEFZERO and DEFNULL, but this one allows to specify the
default value to be used as the first argument.
  • Loading branch information
wtarreau committed Dec 3, 2024
1 parent 2950710 commit 6322c9f
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions include/haproxy/tools-t.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,20 @@
/* return the largest possible integer of type <ret>, with all bits set */
#define MAX_RANGE(ret) (~(typeof(ret))0)

/* DEFVAL() returns either the second argument as-is, or <def> 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

Expand Down

0 comments on commit 6322c9f

Please sign in to comment.