aboutsummaryrefslogtreecommitdiff
path: root/include
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 /include
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.
Diffstat (limited to 'include')
-rw-r--r--include/libunicode.h10
1 files changed, 8 insertions, 2 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