54 lines · 1.5 KB · C
RawDownload
#ifndef _UTF_H_#define _UTF_H_ 1#if defined(__cplusplus)extern "C" { #endif typedef unsigned int Rune;	/* 32 bits */ enum{	UTFmax		= 4,		/* maximum bytes per rune */	Runesync	= 0x80,		/* cannot represent part of a UTF sequence (<) */	Runeself	= 0x80,		/* rune and UTF sequences are the same (<) */	Runeerror	= 0xFFFD,	/* decoding error in UTF */	Runemax = 0x10FFFF	/* maximum rune value */}; /* Edit .+1,/^$/ | cfn $PLAN9/src/lib9/utf/?*.c | grep -v static |grep -v __ */int		chartorune(Rune *rune, char *str);int		fullrune(char *str, int n);int		isalpharune(Rune c);int		islowerrune(Rune c);int		isspacerune(Rune c);int		istitlerune(Rune c);int		isupperrune(Rune c);int		runelen(long c);int		runenlen(Rune *r, int nrune);Rune*		runestrcat(Rune *s1, Rune *s2);Rune*		runestrchr(Rune *s, Rune c);int		runestrcmp(Rune *s1, Rune *s2);Rune*		runestrcpy(Rune *s1, Rune *s2);Rune*		runestrdup(Rune *s) ;Rune*		runestrecpy(Rune *s1, Rune *es1, Rune *s2);long		runestrlen(Rune *s);Rune*		runestrncat(Rune *s1, Rune *s2, long n);int		runestrncmp(Rune *s1, Rune *s2, long n);Rune*		runestrncpy(Rune *s1, Rune *s2, long n);Rune*		runestrrchr(Rune *s, Rune c);Rune*		runestrstr(Rune *s1, Rune *s2);int		runetochar(char *str, Rune *rune);Rune		tolowerrune(Rune c);Rune		totitlerune(Rune c);Rune		toupperrune(Rune c);char*		utfecpy(char *to, char *e, char *from);int		utflen(char *s);int		utfnlen(char *s, long m);char*		utfrrune(char *s, long c);char*		utfrune(char *s, long c);char*		utfutf(char *s1, char *s2); #if defined(__cplusplus)}#endif#endif