mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
macro: make sure we can use IN_SET() also with complex function calls as first argument
This commit is contained in:
parent
0d292f5e75
commit
dc36d78e11
@ -324,13 +324,14 @@ do { \
|
||||
#define SET_FLAG(v, flag, b) \
|
||||
(v) = (b) ? ((v) | (flag)) : ((v) & ~(flag))
|
||||
|
||||
#define IN_SET(x, ...) \
|
||||
#define IN_SET(x, y, ...) \
|
||||
({ \
|
||||
const typeof(x) _x = (x); \
|
||||
const typeof(y) _y = (y); \
|
||||
const typeof(_y) _x = (x); \
|
||||
unsigned _i; \
|
||||
bool _found = false; \
|
||||
for (_i = 0; _i < sizeof((const typeof(_x)[]) { __VA_ARGS__ })/sizeof(const typeof(_x)); _i++) \
|
||||
if (((const typeof(_x)[]) { __VA_ARGS__ })[_i] == _x) { \
|
||||
for (_i = 0; _i < 1 + sizeof((const typeof(_x)[]) { __VA_ARGS__ })/sizeof(const typeof(_x)); _i++) \
|
||||
if (((const typeof(_x)[]) { _y, __VA_ARGS__ })[_i] == _x) { \
|
||||
_found = true; \
|
||||
break; \
|
||||
} \
|
||||
|
@ -574,7 +574,6 @@ static void test_fstab_node_to_udev_node(void) {
|
||||
assert_se(streq(n, "/dev/disk/by-partuuid/037b9d94-148e-4ee4-8d38-67bfe15bb535"));
|
||||
free(n);
|
||||
|
||||
|
||||
n = fstab_node_to_udev_node("PONIES=awesome");
|
||||
puts(n);
|
||||
assert_se(streq(n, "PONIES=awesome"));
|
||||
|
Loading…
Reference in New Issue
Block a user