aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-10-29 08:42:39 -0700
committerNicholas Noll <nbnoll@eml.cc>2021-10-29 08:42:39 -0700
commit079d5d6a214f169fa8b73f2d6f6f741810dbe9fe (patch)
tree5f8842cf9fabd88d173f97301445fce8c75cb2f4
parent6318ddb69ad8380694bbca35ca5a72230c2ee694 (diff)
Exposed some unicode values to library users.
I was hiding too many important constants. This commit moves them to the main exported header.
-rw-r--r--include/libunicode.h10
-rw-r--r--sys/cmd/term/term.c2
-rw-r--r--sys/libunicode/internal.h4
3 files changed, 10 insertions, 6 deletions
diff --git a/include/libunicode.h b/include/libunicode.h
index 00e5bc0..773f9ab 100644
--- a/include/libunicode.h
+++ b/include/libunicode.h
@@ -4,12 +4,18 @@ typedef uint32 rune;
#define UTFmax 4
#define RuneErr 0xFFFDu
+#define RuneMax 0x10FFFFu
+
+#define utf8·onebyte(c) (((c)&0x80u)==0x00u)
+#define utf8·twobyte(c) (((c)&0xE0u)==0xC0u)
+#define utf8·threebyte(c) (((c)&0xF0u)==0xE0u)
+#define utf8·fourbyte(c) (((c)&0xF8u)==0xF0u)
/*
* UTF-8 functions.
*/
-int utf8·len(char *s); // returns number of runes
-int utf8·runelen(rune r); // returns number of bytes for rune
+int utf8·len(char *s); // returns number of runes for s
+int utf8·runelen(rune r); // returns number of bytes for rune
int utf8·decode(char *, rune *); // decode 1 rune from char stream, store into rune, return number of bytes
int utf8·encode(rune *, char *); // encode 1 rune from rune stream, store into char, return number of bytes
diff --git a/sys/cmd/term/term.c b/sys/cmd/term/term.c
index b08915e..f92db28 100644
--- a/sys/cmd/term/term.c
+++ b/sys/cmd/term/term.c
@@ -2104,8 +2104,6 @@ tputc(rune u)
else
return;
- printf("%d + %d\n", gp->u, u);
-
if(!hb_unicode_compose(hb_unicode_funcs_get_default(),gp->u, u, &nu)) {
return;
}
diff --git a/sys/libunicode/internal.h b/sys/libunicode/internal.h
index 6b0657b..df69310 100644
--- a/sys/libunicode/internal.h
+++ b/sys/libunicode/internal.h
@@ -25,13 +25,13 @@
#define TByte3 0xF0u // 0b11110000
#define TByte4 0xF8u // 0b11111000
+#define RuneMask 0x1FFFFFu
+
#define Rune1Byte 0x000080u // 1 << 8 (1 byte)
#define Rune2Byte 0x001000u // 1 << 12 (2 bytes)
#define Rune3Byte 0x020000u // 1 << 17 (3 bytes)
#define Rune4Byte 0x400000u // 1 << 22 (4 bytes)
-#define RuneMax 0x10FFFFu
-#define RuneMask 0x1FFFFFu
/* UTF-16 nonsense */
#define RuneSurrogateMin 0x0D8000