#pragma once typedef uint32 rune; /* * We have to use the preprocessor to ensure * we have unsigned constants. Unfortunate... */ #define UTFmax 4 #define RuneSync 0x80u #define RuneSelf 0x80u #define RuneErr 0xFFFDu #define RuneMax 0x10FFFFu #define RuneMask 0x1FFFFFu /* * UTF-8 functions. */ int utf8·len(char *s); int utf8·runelen(rune r); int utf8·fullrune(char *s, int n); char *utf8·findrune(char *s, long i); char *utf8·findrrune(char* s, long c); int utf8·bytetorune(rune *r, char *s); int utf8·runetobyte(char *s, rune *r); int utf8·isletter(rune r); int utf8·isdigit(rune r); int utf8·isspace(rune r); int utf8·istitle(rune r); rune utf8·toupper(rune r); rune utf8·tolower(rune r); rune utf8·totitle(rune r);