tutf.h - plan9port - [fork] Plan 9 from user space
(HTM) git clone git://src.adamsgaard.dk/plan9port
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tutf.h (1587B)
---
1 #ifndef _UTF_H_
2 #define _UTF_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
6
7 typedef unsigned int Rune; /* 32 bits */
8
9 enum
10 {
11 UTFmax = 4, /* maximum bytes per rune */
12 Runesync = 0x80, /* cannot represent part of a UTF sequence (<) */
13 Runeself = 0x80, /* rune and UTF sequences are the same (<) */
14 Runeerror = 0xFFFD, /* decoding error in UTF */
15 Runemax = 0x10FFFF /* maximum rune value */
16 };
17
18 /* Edit .+1,/^$/ | cfn $PLAN9/src/lib9/utf/?*.c | grep -v static |grep -v __ */
19 int chartorune(Rune *rune, char *str);
20 int fullrune(char *str, int n);
21 int isalpharune(Rune c);
22 int islowerrune(Rune c);
23 int isspacerune(Rune c);
24 int istitlerune(Rune c);
25 int isupperrune(Rune c);
26 int runelen(long c);
27 int runenlen(Rune *r, int nrune);
28 Rune* runestrcat(Rune *s1, Rune *s2);
29 Rune* runestrchr(Rune *s, Rune c);
30 int runestrcmp(Rune *s1, Rune *s2);
31 Rune* runestrcpy(Rune *s1, Rune *s2);
32 Rune* runestrdup(Rune *s) ;
33 Rune* runestrecpy(Rune *s1, Rune *es1, Rune *s2);
34 long runestrlen(Rune *s);
35 Rune* runestrncat(Rune *s1, Rune *s2, long n);
36 int runestrncmp(Rune *s1, Rune *s2, long n);
37 Rune* runestrncpy(Rune *s1, Rune *s2, long n);
38 Rune* runestrrchr(Rune *s, Rune c);
39 Rune* runestrstr(Rune *s1, Rune *s2);
40 int runetochar(char *str, Rune *rune);
41 Rune tolowerrune(Rune c);
42 Rune totitlerune(Rune c);
43 Rune toupperrune(Rune c);
44 char* utfecpy(char *to, char *e, char *from);
45 int utflen(char *s);
46 int utfnlen(char *s, long m);
47 char* utfrrune(char *s, long c);
48 char* utfrune(char *s, long c);
49 char* utfutf(char *s1, char *s2);
50
51 #if defined(__cplusplus)
52 }
53 #endif
54 #endif