53 lines · 1.4 KB · C
RawDownload
#pragma once enum {	Runeself = 0x80,	Runeerror = 0xfffd,	Runemax = 0x10ffff,	Runemask = 0x1fffff,	UTFmax = 4,}; typedef u32int Rune; int chartorune(Rune *rune, const char *str);int runetochar(char *str, const Rune *rune);int runenlen(const Rune *r, int nrune) sl_purefn;int fullrune(const char *str, int n) sl_purefn;int runelen(Rune c) sl_constfn;Rune tolowerrune(Rune c) sl_constfn;Rune toupperrune(Rune c) sl_constfn;Rune totitlerune(Rune c) sl_constfn;int islowerrune(Rune c) sl_constfn;int isupperrune(Rune c) sl_constfn;int isalpharune(Rune c) sl_constfn;int istitlerune(Rune c) sl_constfn;int isspacerune(Rune c) sl_constfn;int isdigitrune(Rune c) sl_constfn; int utfnlen(const char *s, long m); enum { Maxnormctx = 1+30 };typedef struct Norm Norm;struct Norm {	long (*getrune)(void*);	void *ctx; 	struct {		Rune *e;		Rune a[Maxnormctx];	} ibuf, obuf; 	int compose;};extern	void	norminit(Norm*, int, void*, long (*getrune)(void*));extern	long	normpull(Norm*, Rune*, long, int);extern	long	runecomp(Rune*, long, Rune*, long);extern	long	runedecomp(Rune*, long, Rune*, long);extern	long	utfcomp(char*, long, char*, long);extern	long	utfdecomp(char*, long, char*, long); extern	const Rune*	runewbreak(const Rune*) sl_purefn;extern	const char*	utfwbreak(const char*);extern	const Rune*	runegbreak(const Rune*) sl_purefn;extern	const char*	utfgbreak(const char*);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t