summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-06-17 18:04:37 +0200
committerTyge Løvset <[email protected]>2022-06-17 18:04:37 +0200
commit755bcee8a97b2912d047895d37f5b60672486144 (patch)
tree86f662acd342394601984ff8e13f61a803c5275b /include
parentfb39cd5db944d13b6de110885081e483234b453f (diff)
downloadSTC-modified-755bcee8a97b2912d047895d37f5b60672486144.tar.gz
STC-modified-755bcee8a97b2912d047895d37f5b60672486144.zip
Various refactoring. Renamed c_apply_arr() => c_apply_array()
Diffstat (limited to 'include')
-rw-r--r--include/stc/ccommon.h5
-rw-r--r--include/stc/template.h12
2 files changed, 9 insertions, 8 deletions
diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h
index 110114a0..9c00255a 100644
--- a/include/stc/ccommon.h
+++ b/include/stc/ccommon.h
@@ -88,8 +88,7 @@
#define c_arraylen(a) (sizeof (a)/sizeof *(a))
// x and y are i_keyraw* type, defaults to i_key*:
-#define c_less_cmp(less, x, y) ((less((y), (x))) - (less((x), (y))))
-#define c_default_cmp(x, y) c_less_cmp(c_default_less, x, y)
+#define c_default_cmp(x, y) (c_default_less(y, x) - c_default_less(x, y))
#define c_default_less(x, y) (*(x) < *(y))
#define c_default_eq(x, y) (*(x) == *(y))
#define c_memcmp_eq(x, y) (memcmp(x, y, sizeof *(x)) == 0)
@@ -209,7 +208,7 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle,
while (v != _c_end) { action; ++v; } \
} while (0)
-#define c_apply_arr(v, action, T, arr, n) do { \
+#define c_apply_array(v, action, T, arr, n) do { \
typedef T _c_T; \
_c_T *v = arr, *_c_end = v + (n); \
while (v != _c_end) { action; ++v; } \
diff --git a/include/stc/template.h b/include/stc/template.h
index 5de248e7..217b29d3 100644
--- a/include/stc/template.h
+++ b/include/stc/template.h
@@ -163,16 +163,18 @@
#ifndef i_keydrop
#define i_keydrop c_default_drop
#endif
-#ifdef i_less
- #define i_cmp(x, y) c_less_cmp(i_less, x, y)
-#endif
-#if !defined i_eq && defined i_cmp
+
+// i_eq, i_less, i_cmp, i_hash
+#if !defined i_eq && (defined i_cmp || defined i_less)
#define i_eq(x, y) !(i_cmp(x, y))
#elif !defined i_eq
#define i_eq c_default_eq
#endif
+#if !defined i_less && !defined i_cmp
+ #define i_less c_default_less
+#endif
#ifndef i_cmp
- #define i_cmp c_default_cmp
+ #define i_cmp(x, y) (i_less(y, x)) - (i_less(x, y))
#endif
#ifndef i_hash
#define i_hash c_default_hash