From 6318ddb69ad8380694bbca35ca5a72230c2ee694 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Thu, 28 Oct 2021 11:55:47 -0700 Subject: Feat(libunicode): cleaned up decode/encode Additionally, decode can now apply backwards on a byte string. --- include/libunicode.h | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/libunicode.h b/include/libunicode.h index 5e69fd1..00e5bc0 100644 --- a/include/libunicode.h +++ b/include/libunicode.h @@ -2,16 +2,8 @@ typedef uint32 rune; -/* - * we have to use the preprocessor to ensure we have unsigned constants. - */ - #define UTFmax 4 -#define RuneSync 0x80u -#define RuneSelf 0x80u #define RuneErr 0xFFFDu -#define RuneMax 0x10FFFFu -#define RuneMask 0x1FFFFFu /* * UTF-8 functions. @@ -19,8 +11,9 @@ typedef uint32 rune; int utf8·len(char *s); // returns number of runes 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 +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 +int utf8·decodeprev(char *s, rune *r); // decode 1 rune from char stream, reading backwards, store into rune, return number of bytes char *utf8·find(char *s, rune); // find rune in char stream char *utf8·findlast(char* s, rune); // find last rune in char stream @@ -31,6 +24,7 @@ int utf8·isletter(rune r); int utf8·isdigit(rune r); int utf8·isspace(rune r); int utf8·istitle(rune r); +int utf8·ispunct(rune r); rune utf8·toupper(rune r); rune utf8·tolower(rune r); -- cgit v1.2.1