summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-09-26 12:58:18 +0200
committerTyge Løvset <[email protected]>2022-09-26 12:58:18 +0200
commit2e3db1c709e88d68cece8c46566ca6b8481b7c07 (patch)
tree1f0a729f9918e0ed05a370fc56ae4b84a8ca53a7 /include
parentb49dd3163d699852450cf18c27f012c98a0fc2f8 (diff)
downloadSTC-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.h5
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