]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
strv: make sure FOREACH_STRING() can be nested
authorLennart Poettering <lennart@poettering.net>
Fri, 19 Nov 2021 10:22:44 +0000 (11:22 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 19 Nov 2021 10:23:36 +0000 (11:23 +0100)
src/basic/strv.h

index a56ef94139976263da24734321023fed9eaff0a6..2df16a8962eca50cbe0dd3afc95d428f26c3131a 100644 (file)
@@ -206,10 +206,13 @@ void strv_print(char * const *l);
                 _found;                                         \
         })
 
-#define FOREACH_STRING(x, y, ...)                                       \
-        for (char **_l = STRV_MAKE(({ x = y; }), ##__VA_ARGS__);        \
+#define _FOREACH_STRING(uniq, x, y, ...)                                \
+        for (char **UNIQ_T(l, uniq) = STRV_MAKE(({ x = y; }), ##__VA_ARGS__); \
              x;                                                         \
-             x = *(++_l))
+             x = *(++UNIQ_T(l, uniq)))
+
+#define FOREACH_STRING(x, y, ...)                       \
+        _FOREACH_STRING(UNIQ, x, y, ##__VA_ARGS__)
 
 char **strv_reverse(char **l);
 char **strv_shell_escape(char **l, const char *bad);