diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/stc/ccommon.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h index d01254a6..59056905 100644 --- a/include/stc/ccommon.h +++ b/include/stc/ccommon.h @@ -176,11 +176,11 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle, #define c_forfilter5(it, C, cnt, filter, cond) \ c_forfilter_s(it, C, C##_begin(&cnt), filter, cond) #define c_forfilter_s(it, C, start, filter, cond) \ - c_forloop_s(it, C, start, cond) if (!((filter) && ++it.count)) ; else + c_forwhile_s(it, C, start, cond) if (!((filter) && ++it.count)) ; else -#define c_forloop(i, C, cnt, cond) \ - c_forloop_s(i, C, C##_begin(&cnt), cond) -#define c_forloop_s(i, C, start, cond) \ +#define c_forwhile(i, C, cnt, cond) \ + c_forwhile_s(i, C, C##_begin(&cnt), cond) +#define c_forwhile_s(i, C, start, cond) \ for (struct {C##_iter it; const C##_value *ref; size_t index, count;} \ i = {.it=start, .ref=i.it.ref}; i.ref && (cond) \ ; C##_next(&i.it), i.ref = i.it.ref, ++i.index) |
