]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
macro: rename VA_ARGS_FOREACH to FOREACH_ARGUMENT
authorMike Yuan <me@yhndnzj.com>
Wed, 24 Jan 2024 13:15:53 +0000 (21:15 +0800)
committerMike Yuan <me@yhndnzj.com>
Wed, 24 Jan 2024 13:21:57 +0000 (21:21 +0800)
"VA_ARGS" is kinda confusing, as the macro just iterates through
all arguments passed and has nothing to do with va_arg.

src/analyze/analyze-plot.c
src/basic/bitfield.h
src/basic/macro.h
src/test/test-macro.c

index ccd552a781648346591aca0e67a4ae0c9f2642ee..6201b4facc4175976a2b1f767ad86ac0ad6300c5 100644 (file)
@@ -168,7 +168,7 @@ static void plot_tooltip(const UnitTimes *ut) {
         svg("%s:\n", ut->name);
 
         UnitDependency i;
-        VA_ARGS_FOREACH(i, UNIT_AFTER, UNIT_BEFORE, UNIT_REQUIRES, UNIT_REQUISITE, UNIT_WANTS, UNIT_CONFLICTS, UNIT_UPHOLDS)
+        FOREACH_ARGUMENT(i, UNIT_AFTER, UNIT_BEFORE, UNIT_REQUIRES, UNIT_REQUISITE, UNIT_WANTS, UNIT_CONFLICTS, UNIT_UPHOLDS)
                 if (!strv_isempty(ut->deps[i])) {
                         svg("\n%s:\n", unit_dependency_to_string(i));
                         STRV_FOREACH(s, ut->deps[i])
index 25bc0ebda771704461de8154a7e86e8ddf016d94..048e08d753487ed1f8c7b7875618fd4ae43ff030 100644 (file)
@@ -27,7 +27,7 @@
         ({                                                              \
                 typeof(type) UNIQ_T(_mask, uniq) = (type)0;             \
                 int UNIQ_T(_i, uniq);                                   \
-                VA_ARGS_FOREACH(UNIQ_T(_i, uniq), ##__VA_ARGS__)        \
+                FOREACH_ARGUMENT(UNIQ_T(_i, uniq), ##__VA_ARGS__)       \
                         UNIQ_T(_mask, uniq) |= INDEX_TO_MASK(type, UNIQ_T(_i, uniq)); \
                 UNIQ_T(_mask, uniq);                                    \
         })
index d63aa816ccb9cd8dbb6cb5ead5f3c7b2aeaf3a4f..a78cec9b4e641e6e2b5a20caa5d3f45d284af07b 100644 (file)
@@ -380,11 +380,11 @@ assert_cc(sizeof(dummy_t) == 0);
                 _q && _q > (base) ? &_q[-1] : NULL;      \
         })
 
-/* Iterate through each variadic arg. All must be the same type as 'entry' or must be implicitly
+/* Iterate through each argument passed. All must be the same type as 'entry' or must be implicitly
  * convertible. The iteration variable 'entry' must already be defined. */
-#define VA_ARGS_FOREACH(entry, ...)                                     \
-        _VA_ARGS_FOREACH(entry, UNIQ_T(_entries_, UNIQ), UNIQ_T(_current_, UNIQ), UNIQ_T(_va_sentinel_, UNIQ), ##__VA_ARGS__)
-#define _VA_ARGS_FOREACH(entry, _entries_, _current_, _va_sentinel_, ...)         \
+#define FOREACH_ARGUMENT(entry, ...)                                     \
+        _FOREACH_ARGUMENT(entry, UNIQ_T(_entries_, UNIQ), UNIQ_T(_current_, UNIQ), UNIQ_T(_va_sentinel_, UNIQ), ##__VA_ARGS__)
+#define _FOREACH_ARGUMENT(entry, _entries_, _current_, _va_sentinel_, ...)      \
         for (typeof(entry) _va_sentinel_[1] = {}, _entries_[] = { __VA_ARGS__ __VA_OPT__(,) _va_sentinel_[0] }, *_current_ = _entries_; \
              ((long)(_current_ - _entries_) < (long)(ELEMENTSOF(_entries_) - 1)) && ({ entry = *_current_; true; }); \
              _current_++)
index 95b70142aabeb89e684362cf634140c6cd37edc9..b35cf64b94f43469ca36972cc57fb1082df70488 100644 (file)
@@ -300,12 +300,12 @@ TEST(FOREACH_POINTER) {
         assert_se(k == 11);
 }
 
-TEST(FOREACH_VA_ARGS) {
+TEST(FOREACH_ARGUMENT) {
         size_t i;
 
         i = 0;
         uint8_t u8, u8_1 = 1, u8_2 = 2, u8_3 = 3;
-        VA_ARGS_FOREACH(u8, u8_2, 8, 0xff, u8_1, u8_3, 0, 1) {
+        FOREACH_ARGUMENT(u8, u8_2, 8, 0xff, u8_1, u8_3, 0, 1) {
                 switch (i++) {
                 case 0: assert_se(u8 == u8_2); break;
                 case 1: assert_se(u8 == 8); break;
@@ -319,23 +319,23 @@ TEST(FOREACH_VA_ARGS) {
         }
         assert_se(i == 7);
         i = 0;
-        VA_ARGS_FOREACH(u8, 0) {
+        FOREACH_ARGUMENT(u8, 0) {
                 assert_se(u8 == 0);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
         i = 0;
-        VA_ARGS_FOREACH(u8, 0xff) {
+        FOREACH_ARGUMENT(u8, 0xff) {
                 assert_se(u8 == 0xff);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
-        VA_ARGS_FOREACH(u8)
+        FOREACH_ARGUMENT(u8)
                 assert_se(false);
 
         i = 0;
         uint32_t u32, u32_1 = 0xffff0000, u32_2 = 10, u32_3 = 0xffff;
-        VA_ARGS_FOREACH(u32, 1, 100, u32_2, 1000, u32_3, u32_1, 1, 0) {
+        FOREACH_ARGUMENT(u32, 1, 100, u32_2, 1000, u32_3, u32_1, 1, 0) {
                 switch (i++) {
                 case 0: assert_se(u32 == 1); break;
                 case 1: assert_se(u32 == 100); break;
@@ -350,23 +350,23 @@ TEST(FOREACH_VA_ARGS) {
         }
         assert_se(i == 8);
         i = 0;
-        VA_ARGS_FOREACH(u32, 0) {
+        FOREACH_ARGUMENT(u32, 0) {
                 assert_se(u32 == 0);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
         i = 0;
-        VA_ARGS_FOREACH(u32, 1000) {
+        FOREACH_ARGUMENT(u32, 1000) {
                 assert_se(u32 == 1000);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
-        VA_ARGS_FOREACH(u32)
+        FOREACH_ARGUMENT(u32)
                 assert_se(false);
 
         i = 0;
         uint64_t u64, u64_1 = 0xffffffffffffffff, u64_2 = 50, u64_3 = 0xffff;
-        VA_ARGS_FOREACH(u64, 44, 0, u64_3, 100, u64_2, u64_1, 50000) {
+        FOREACH_ARGUMENT(u64, 44, 0, u64_3, 100, u64_2, u64_1, 50000) {
                 switch (i++) {
                 case 0: assert_se(u64 == 44); break;
                 case 1: assert_se(u64 == 0); break;
@@ -380,18 +380,18 @@ TEST(FOREACH_VA_ARGS) {
         }
         assert_se(i == 7);
         i = 0;
-        VA_ARGS_FOREACH(u64, 0) {
+        FOREACH_ARGUMENT(u64, 0) {
                 assert_se(u64 == 0);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
         i = 0;
-        VA_ARGS_FOREACH(u64, 0xff00ff00000000) {
+        FOREACH_ARGUMENT(u64, 0xff00ff00000000) {
                 assert_se(u64 == 0xff00ff00000000);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
-        VA_ARGS_FOREACH(u64)
+        FOREACH_ARGUMENT(u64)
                 assert_se(false);
 
         struct test {
@@ -405,7 +405,7 @@ TEST(FOREACH_VA_ARGS) {
                 s_2 = { .a = 100000, .b = 'z', },
                 s_3 = { .a = 0xff, .b = 'q', },
                 s_4 = { .a = 1, .b = 'x', };
-        VA_ARGS_FOREACH(s, s_1, (struct test){ .a = 10, .b = 'd', }, s_2, (struct test){}, s_3, s_4) {
+        FOREACH_ARGUMENT(s, s_1, (struct test){ .a = 10, .b = 'd', }, s_2, (struct test){}, s_3, s_4) {
                 switch (i++) {
                 case 0: assert_se(s.a == 0     ); assert_se(s.b == 'c'); break;
                 case 1: assert_se(s.a == 10    ); assert_se(s.b == 'd'); break;
@@ -418,18 +418,18 @@ TEST(FOREACH_VA_ARGS) {
         }
         assert_se(i == 6);
         i = 0;
-        VA_ARGS_FOREACH(s, (struct test){ .a = 1, .b = 'A', }) {
+        FOREACH_ARGUMENT(s, (struct test){ .a = 1, .b = 'A', }) {
                 assert_se(s.a == 1);
                 assert_se(s.b == 'A');
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
-        VA_ARGS_FOREACH(s)
+        FOREACH_ARGUMENT(s)
                 assert_se(false);
 
         i = 0;
         struct test *p, *p_1 = &s_1, *p_2 = &s_2, *p_3 = &s_3, *p_4 = &s_4;
-        VA_ARGS_FOREACH(p, p_1, NULL, p_2, p_3, NULL, p_4, NULL) {
+        FOREACH_ARGUMENT(p, p_1, NULL, p_2, p_3, NULL, p_4, NULL) {
                 switch (i++) {
                 case 0: assert_se(p == p_1); break;
                 case 1: assert_se(p == NULL); break;
@@ -443,18 +443,18 @@ TEST(FOREACH_VA_ARGS) {
         }
         assert_se(i == 7);
         i = 0;
-        VA_ARGS_FOREACH(p, p_3) {
+        FOREACH_ARGUMENT(p, p_3) {
                 assert_se(p == p_3);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
-        VA_ARGS_FOREACH(p)
+        FOREACH_ARGUMENT(p)
                 assert_se(false);
 
         i = 0;
         void *v, *v_1 = p_1, *v_2 = p_2, *v_3 = p_3;
         uint32_t *u32p = &u32;
-        VA_ARGS_FOREACH(v, v_1, NULL, u32p, v_3, p_2, p_4, v_2, NULL) {
+        FOREACH_ARGUMENT(v, v_1, NULL, u32p, v_3, p_2, p_4, v_2, NULL) {
                 switch (i++) {
                 case 0: assert_se(v == v_1); break;
                 case 1: assert_se(v == NULL); break;
@@ -469,18 +469,18 @@ TEST(FOREACH_VA_ARGS) {
         }
         assert_se(i == 8);
         i = 0;
-        VA_ARGS_FOREACH(v, NULL) {
+        FOREACH_ARGUMENT(v, NULL) {
                 assert_se(v == NULL);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
         i = 0;
-        VA_ARGS_FOREACH(v, v_1) {
+        FOREACH_ARGUMENT(v, v_1) {
                 assert_se(v == v_1);
                 assert_se(i++ == 0);
         }
         assert_se(i == 1);
-        VA_ARGS_FOREACH(v)
+        FOREACH_ARGUMENT(v)
                 assert_se(false);
 }