shithub: femtolisp

ref: c1b99838564a31cba20b227c1f4a9ffa51d5c74e
dir: /posix/utf.h/

View raw version
#pragma once

enum {
	Runeself = 0x80,
	Runeerror = 0xfffd,
	Runemax = 0x10ffff,
	UTFmax = 4,
};

typedef uint32_t Rune;

int chartorune(Rune *rune, const char *str);
int runetochar(char *str, const Rune *rune);
int runenlen(const Rune *r, int nrune);
int fullrune(const char *str, int n);
int runelen(Rune c);
Rune tolowerrune(Rune c);
Rune toupperrune(Rune c);
Rune totitlerune(Rune c);
int islowerrune(Rune c);
int isupperrune(Rune c);
int isalpharune(Rune c);
int istitlerune(Rune c);
int isspacerune(Rune c);
int isdigitrune(Rune c);

int utfnlen(const char *s, long m);