From 734a6f730ced85afd06ce7d4704b0cc79ac6678d Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Wed, 4 May 2022 18:50:28 +0200 Subject: Small change in find_if/it macro + doc of index variable. --- include/stc/ccommon.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h index d3749cf1..8885626c 100644 --- a/include/stc/ccommon.h +++ b/include/stc/ccommon.h @@ -168,7 +168,7 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle, size_t slen, cons #define c_autovar(...) c_MACRO_OVERLOAD(c_autovar, __VA_ARGS__) #define c_autovar2(declvar, drop) for (declvar, **_c_ii = NULL; !_c_ii; ++_c_ii, drop) -#define c_autovar3(declvar, cond, drop) for (declvar, **_c_ii = NULL; !_c_ii && (cond); ++_c_ii, drop) +#define c_autovar3(declvar, pred, drop) for (declvar, **_c_ii = NULL; !_c_ii && (pred); ++_c_ii, drop) #define c_autoscope(init, drop) for (int _c_ii = (init, 0); !_c_ii; ++_c_ii, drop) #define c_autodefer(...) for (int _c_ii = 0; !_c_ii; ++_c_ii, __VA_ARGS__) #define c_breakauto continue @@ -209,15 +209,15 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle, size_t slen, cons #define c_find_it(it, C, cnt, pred) do { \ size_t index = 0; \ C##_iter _end = C##_end(&cnt); \ - for (it = C##_begin(&cnt); it.ref != _end.ref; C##_next(&it)) \ - if (pred) break; else ++index; \ + for (it = C##_begin(&cnt); it.ref != _end.ref && !(pred); C##_next(&it)) \ + ++index; \ } while (0) #define c_find_if(vp, C, cnt, pred) do { \ size_t index = 0; \ - C##_iter _it, _end = C##_end(&cnt); \ - for (_it = C##_begin(&cnt); _it.ref != _end.ref; C##_next(&_it)) \ - if (vp = _it.ref, pred) break; else ++index; \ + C##_iter _it = C##_begin(&cnt), _end = C##_end(&cnt); \ + for (; vp = _it.ref, _it.ref != _end.ref && !(pred); C##_next(&_it)) \ + ++index; \ if (_it.ref == _end.ref) vp = NULL; \ } while (0) -- cgit v1.2.3