diff options
| author | Tyge Løvset <[email protected]> | 2022-09-26 12:58:18 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-09-26 12:58:18 +0200 |
| commit | 2e3db1c709e88d68cece8c46566ca6b8481b7c07 (patch) | |
| tree | 1f0a729f9918e0ed05a370fc56ae4b84a8ca53a7 /include | |
| parent | b49dd3163d699852450cf18c27f012c98a0fc2f8 (diff) | |
| download | STC-modified-2e3db1c709e88d68cece8c46566ca6b8481b7c07.tar.gz STC-modified-2e3db1c709e88d68cece8c46566ca6b8481b7c07.zip | |
Added c_flt_takewhile() filter to c_forfilter() macro.
Diffstat (limited to 'include')
| -rw-r--r-- | include/stc/ccommon.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h index 15cebe09..2edab5bc 100644 --- a/include/stc/ccommon.h +++ b/include/stc/ccommon.h @@ -168,12 +168,13 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle, #define c_flt_take(i, n) (++(i).s1[(i).s1top++] <= (n)) #define c_flt_drop(i, n) (++(i).s1[(i).s1top++] > (n)) #define c_flt_dropwhile(i, pred) ((i).s2[(i).s2top++] |= !(pred)) +#define c_flt_takewhile(i, pred) !c_flt_dropwhile(i, pred) #define c_forfilter(...) c_MACRO_OVERLOAD(c_forfilter, __VA_ARGS__) #define c_forfilter4(it, C, cnt, filter) \ c_forfilter_s(it, C, C##_begin(&cnt), filter) -#define c_forfilter5(it, C, cnt, filter, takewhile) \ - c_forfilter_s(it, C, C##_begin(&cnt), filter) if (!(takewhile)) break; else +#define c_forfilter5(it, C, cnt, filter, whilepred) \ + c_forfilter_s(it, C, C##_begin(&cnt), filter) if (!(whilepred)) break; else #define c_forfilter_s(it, C, start, filter) \ c_foreach_s(it, C, start) if (!(filter)) ; else |
