From f85b12d6fdb6c2cce65d61101922a956cf645045 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 19 Nov 2021 11:22:44 +0100 Subject: [PATCH] strv: make sure FOREACH_STRING() can be nested --- src/basic/strv.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/basic/strv.h b/src/basic/strv.h index a56ef941399..2df16a8962e 100644 --- a/src/basic/strv.h +++ b/src/basic/strv.h @@ -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); -- 2.47.3