aboutsummaryrefslogtreecommitdiff
path: root/vendor/librune/include/internal/common.h
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-02-13 13:02:28 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-02-13 13:11:47 +0100
commit79e6af86ca526d5fb56af6f6ca3da713e3a5e9f9 (patch)
tree752f1c26d1f122dcf58374ac78db109c9578be45 /vendor/librune/include/internal/common.h
Genesis commit
Diffstat (limited to 'vendor/librune/include/internal/common.h')
-rw-r--r--vendor/librune/include/internal/common.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h
new file mode 100644
index 0000000..a05f33c
--- /dev/null
+++ b/vendor/librune/include/internal/common.h
@@ -0,0 +1,29 @@
+#ifndef RUNE_INTERNAL_COMMON_H
+#define RUNE_INTERNAL_COMMON_H
+
+/* IWYU pragma: private */
+
+#include <limits.h>
+
+#define lengthof(a) (sizeof(a) / sizeof(*(a)))
+
+#define U1(x) (((x)&0x80) == 0x00)
+#define U2(x) (((x)&0xE0) == 0xC0)
+#define U3(x) (((x)&0xF0) == 0xE0)
+#define U4(x) (((x)&0xF8) == 0xF0)
+#define UC(x) (((x)&0xC0) == 0x80)
+
+/* Maximum value of a 1–4-byte long UTF-8 sequence */
+#include "rune.h"
+#define _1B_MAX RUNE_C(0x00007F)
+#define _2B_MAX RUNE_C(0x0007FF)
+#define _3B_MAX RUNE_C(0x00FFFF)
+#define _4B_MAX RUNE_C(0x10FFFF)
+
+#define LATIN1_MAX 0xFF
+
+#if BITINT_MAXWIDTH >= LATIN1_MAX + 1
+# define BIT_LOOKUP 1
+#endif
+
+#endif /* !RUNE_INTERNAL_COMMON_H */