From 70ac364620612da17de42d3ac040fd61716e8f1d Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Fri, 3 Feb 2023 13:30:41 -0400 Subject: pso/macros: Add `FOREACH_NODE{,_NODECL}_MULTI_ITER` This allows for iterating multiple things within a `FOREACH_NODE` macro. --- include/pso/macros.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/pso/macros.h b/include/pso/macros.h index f7498c3..1a75d53 100644 --- a/include/pso/macros.h +++ b/include/pso/macros.h @@ -2,7 +2,11 @@ #define MACROS_H #define OBJECT_NAME(name) static const char *name##_name = #name; + #define FOREACH_NODE(type, first, varname) for (type *varname = (type *)(first); varname != NULL; varname = (type *)(varname->next)) #define FOREACH_NODE_NODECL(type, first, varname) for (varname = (type *)(first); varname != NULL; varname = (type *)(varname->next)) +#define FOREACH_NODE_MULTI_ITER(type, first, varname, ...) for (type *varname = (type *)(first); varname != NULL; varname = (type *)(varname->next), __VA_ARGS__) +#define FOREACH_NODE_NODECL_MULTI_ITER(type, first, varname, ...) for (varname = (type *)(first); varname != NULL; varname = (type *)(varname->next), __VA_ARGS__) + #endif -- cgit v1.2.3-13-gbd6f