diff options
| author | Tyge Løvset <[email protected]> | 2020-10-02 07:04:35 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2020-10-02 07:04:35 +0200 |
| commit | 5a6bb1f5061a6ac75d70edf90f75dd976cfaba7d (patch) | |
| tree | 0231a274aa64b9acc880a264f6f7e39ea82f9538 /stc | |
| parent | b4561502823e9eb0c0f1160ea4cdb69118a86589 (diff) | |
| download | STC-modified-5a6bb1f5061a6ac75d70edf90f75dd976cfaba7d.tar.gz STC-modified-5a6bb1f5061a6ac75d70edf90f75dd976cfaba7d.zip | |
Fixed generic less function - only worked for int
Diffstat (limited to 'stc')
| -rw-r--r-- | stc/cdefs.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/stc/cdefs.h b/stc/cdefs.h index 909ba69e..7bfccd3e 100644 --- a/stc/cdefs.h +++ b/stc/cdefs.h @@ -72,12 +72,14 @@ enum {_c_max_buffer = 512}; #define c_mem_equals(x, y) (memcmp(x, y, sizeof(*(y))) == 0)
#define c_default_equals(x, y) (*(x) == *(y))
#define c_default_less(x, y) (*(x) < *(y))
-#define c_less_compare(less, x, y) (less(x, y) ? -1 : less(y, x))
-#define c_default_compare(x, y) (*(x) - *(y))
+#define c_less_compare(less, x, y) (less(y, x) - less(x, y))
+#define c_default_compare(x, y) c_less_compare(c_default_less, x, y)
#define c_default_from_raw(x) (x)
#define c_default_to_raw(ptr) (*(ptr))
#define c_default_del(ptr) ((void) (ptr))
+/* Generic algorithms */
+
#define c_foreach(...) c_MACRO_OVERLOAD(c_foreach, __VA_ARGS__)
#define c_foreach_3(it, ctype, cnt) \
for (ctype##_iter_t it = ctype##_begin(&cnt), it##_end_ = ctype##_end(&cnt); it.val != it##_end_.val; ctype##_next(&it))
|
