mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-07-23 11:14:29 +00:00
utils: add _NM_UTILS_MACRO_FIRST and _NM_UTILS_MACRO_REST macros
Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
parent
9f832d99be
commit
65c43a680e
|
@ -23,5 +23,22 @@
|
|||
#define __NM_UTILS_INTERNAL_H__
|
||||
|
||||
|
||||
/* http://stackoverflow.com/a/11172679 */
|
||||
#define _NM_UTILS_MACRO_FIRST(...) __NM_UTILS_MACRO_FIRST_HELPER(__VA_ARGS__, throwaway)
|
||||
#define __NM_UTILS_MACRO_FIRST_HELPER(first, ...) first
|
||||
|
||||
#define _NM_UTILS_MACRO_REST(...) __NM_UTILS_MACRO_REST_HELPER(__NM_UTILS_MACRO_REST_NUM(__VA_ARGS__), __VA_ARGS__)
|
||||
#define __NM_UTILS_MACRO_REST_HELPER(qty, ...) __NM_UTILS_MACRO_REST_HELPER2(qty, __VA_ARGS__)
|
||||
#define __NM_UTILS_MACRO_REST_HELPER2(qty, ...) __NM_UTILS_MACRO_REST_HELPER_##qty(__VA_ARGS__)
|
||||
#define __NM_UTILS_MACRO_REST_HELPER_ONE(first)
|
||||
#define __NM_UTILS_MACRO_REST_HELPER_TWOORMORE(first, ...) , __VA_ARGS__
|
||||
#define __NM_UTILS_MACRO_REST_NUM(...) \
|
||||
__NM_UTILS_MACRO_REST_SELECT_20TH(__VA_ARGS__, \
|
||||
TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\
|
||||
TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\
|
||||
TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\
|
||||
TWOORMORE, TWOORMORE, TWOORMORE, ONE, throwaway)
|
||||
#define __NM_UTILS_MACRO_REST_SELECT_20TH(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, ...) a20
|
||||
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue