aboutsummaryrefslogtreecommitdiff
path: root/include/_bsearch.h
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-05-07 23:07:38 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-05-07 23:07:38 +0200
commit19621b67f7f23518df1c27d50c4d52dc99f6f65c (patch)
tree9f289e84bfff762c77c90249464e5939c0ec1a2e /include/_bsearch.h
parent6b3518c84ad90b1b593ef4bb700b39465c79b50e (diff)
Use a 2-stage lookup for u8wnext() and u8wcnt()
Diffstat (limited to 'include/_bsearch.h')
-rw-r--r--include/_bsearch.h60
1 files changed, 0 insertions, 60 deletions
diff --git a/include/_bsearch.h b/include/_bsearch.h
deleted file mode 100644
index ce8f118..0000000
--- a/include/_bsearch.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#include <stddef.h>
-
-#include "macros.h"
-
-#define _MLIB_DEFINE_BSEARCH(TYPE, TABLE, DEFAULT) \
- static TYPE mlib_lookup(rune ch) \
- { \
- ptrdiff_t i, lo, hi; \
- lo = 0; \
- hi = lengthof(TABLE) - 1; \
- i = (lo + hi) / 2; \
- do { \
- if (ch < TABLE[i].lo) \
- hi = i - 1; \
- else if (ch > TABLE[i].hi) \
- lo = i + 1; \
- else \
- return TABLE[i].val; \
- i = (lo + hi) / 2; \
- } while (lo <= hi); \
- return DEFAULT; \
- }
-
-#define _MLIB_DEFINE_BSEARCH_CONTAINS(TABLE) \
- static bool mlib_lookup_contains(rune ch) \
- { \
- ptrdiff_t i, lo, hi; \
- lo = 0; \
- hi = lengthof(TABLE) - 1; \
- i = (lo + hi) / 2; \
- do { \
- if (ch < TABLE[i].lo) \
- hi = i - 1; \
- else if (ch > TABLE[i].hi) \
- lo = i + 1; \
- else \
- return true; \
- i = (lo + hi) / 2; \
- } while (lo <= hi); \
- return false; \
- }
-
-#define _MLIB_DEFINE_BSEARCH_KV(TYPE, TABLE, DEFAULT) \
- static TYPE mlib_lookup_kv(rune ch) \
- { \
- ptrdiff_t i, lo, hi; \
- lo = 0; \
- hi = lengthof(TABLE) - 1; \
- i = (lo + hi) / 2; \
- do { \
- if (ch < TABLE[i].k) \
- hi = i - 1; \
- else if (ch > TABLE[i].k) \
- lo = i + 1; \
- else \
- return TABLE[i].v; \
- i = (lo + hi) / 2; \
- } while (lo <= hi); \
- return DEFAULT; \
- }