Sigrid Solveig Haflínudóttirbikeshedding3003d4b10 months agoHistory
54 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) sl_nonnull(1, 2) sl_wr(1) sl_cstr(2) sl_rd(2);int runetochar(char *str, const Rune *rune) sl_nonnull(1, 2) sl_wr(1) sl_rd(2);int fullrune(const char *str, int n) sl_purefn sl_nonnull(1) sl_rd(1, 2);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) sl_nonnull(1) sl_rd(1, 2); 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;}; void norminit(Norm*, int, void*, long (*getrune)(void*));long normpull(Norm*, Rune*, long, int);long runecomp(Rune*, long, Rune*, long);long runedecomp(Rune*, long, Rune*, long);long utfcomp(char*, long, char*, long);long utfdecomp(char*, long, char*, long); const Rune *runewbreak(const Rune*) sl_purefn;const char *utfwbreak(const char*) sl_cstr(1);const Rune *runegbreak(const Rune*) sl_purefn;const char *utfgbreak(const char*) sl_cstr(1);

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