aboutsummaryrefslogtreecommitdiff
path: root/sys/libunicode/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/libunicode/internal.h')
-rw-r--r--sys/libunicode/internal.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/libunicode/internal.h b/sys/libunicode/internal.h
new file mode 100644
index 0000000..bf376b2
--- /dev/null
+++ b/sys/libunicode/internal.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <u.h>
+#include <base.h>
+#include <libunicode.h>
+
+#define Bit(i) (7-(i))
+/* N 0's preceded by i 1's e.g. T(Bit(2)) is 1100 0000 */
+#define Tbyte(i) (((1 << (Bit(i)+1))-1) ^ 0xFF)
+/* 0000 0000 0000 0111 1111 1111 */
+#define RuneX(i) ((1 << (Bit(i) + ((i)-1)*Bitx))-1)
+
+enum
+{
+ Bitx = Bit(1),
+ Tx = Tbyte(1),
+ Rune1 = (1 << (Bit(0)+0*Bitx)) - 1,
+
+ Maskx = (1 << Bitx) - 1, /* 0011 1111 */
+ Testx = Maskx ^ 0xff, /* 1100 0000 */
+
+ SurrogateMin = 0xD800,
+ SurrogateMax = 0xDFFF,
+ Bad = RuneErr,
+};