#ifndef UTF_H
#define UTF_H
#include <stddef.h>
#include <stdint.h>
#define RUNE_C(x) …
Rune;
#define UTFmax …
#define Runeself …
#define Runemax …
#define Runeerror …
#ifdef __cplusplus
extern "C" {
#endif
int charntorune(Rune*, const char*, size_t);
int chartorune(Rune*, const char*);
int fullrune(const char*, size_t);
int runelen(const Rune);
size_t runenlen(const Rune*, size_t);
int runetochar(char*, const Rune*);
size_t utflen(const char*);
size_t utfnlen(const char*, size_t);
char* utfrune(const char*, Rune);
char* utfrrune(const char*, Rune);
char* utfutf(const char*, const char*);
char* utfecpy(char*, char*, const char*);
int isalnumrune(Rune);
int isalpharune(Rune);
int isblankrune(Rune);
int iscntrlrune(Rune);
int isdigitrune(Rune);
int isgraphrune(Rune);
int islowerrune(Rune);
int isprintrune(Rune);
int ispunctrune(Rune);
int isspacerune(Rune);
int istitlerune(Rune);
int isupperrune(Rune);
int isvalidrune(Rune);
int isxdigitrune(Rune);
Rune tolowerrune(Rune);
Rune toupperrune(Rune);
Rune* runestrcat(Rune*, const Rune*);
Rune* runestrncat(Rune*, const Rune*, size_t);
int runestrcmp(const Rune*, const Rune*);
int runestrncmp(const Rune*, const Rune*, size_t);
Rune* runestrcpy(Rune*, const Rune*);
Rune* runestrncpy(Rune*, const Rune*, size_t);
size_t runestrlen(const Rune*);
Rune* runestrchr(const Rune*, Rune);
Rune* runestrrchr(const Rune*, Rune);
Rune* runestrdup(const Rune*);
Rune* runestrstr(const Rune*, const Rune*);
Rune* runestrecpy(Rune*, Rune*, Rune*);
extern const unsigned char utftab[64];
#ifdef __cplusplus
}
#endif
#endif