2 |
- |
1 |
#ifndef _UTFH_
|
|
|
2 |
#define _UTFH_ 1
|
|
|
3 |
|
|
|
4 |
typedef unsigned int Rune; /* 32 bits */
|
|
|
5 |
|
|
|
6 |
enum
|
|
|
7 |
{
|
|
|
8 |
UTFmax = 4, /* maximum bytes per rune */
|
|
|
9 |
Runesync = 0x80, /* cannot represent part of a UTF sequence (<) */
|
|
|
10 |
Runeself = 0x80, /* rune and UTF sequences are the same (<) */
|
|
|
11 |
Runeerror = 0xFFFD, /* decoding error in UTF */
|
|
|
12 |
Runemax = 0x10FFFF, /* 21-bit rune */
|
|
|
13 |
Runemask = 0x1FFFFF, /* bits used by runes (see grep) */
|
|
|
14 |
};
|
|
|
15 |
|
|
|
16 |
/*
|
|
|
17 |
* rune routines
|
|
|
18 |
*/
|
|
|
19 |
extern int runetochar(char*, Rune*);
|
|
|
20 |
extern int chartorune(Rune*, char*);
|
|
|
21 |
extern int runelen(long);
|
|
|
22 |
extern int runenlen(Rune*, int);
|
|
|
23 |
extern int fullrune(char*, int);
|
|
|
24 |
extern int utflen(char*);
|
|
|
25 |
extern int utfnlen(char*, long);
|
|
|
26 |
extern char* utfrune(char*, long);
|
|
|
27 |
extern char* utfrrune(char*, long);
|
|
|
28 |
extern char* utfutf(char*, char*);
|
|
|
29 |
extern char* utfecpy(char*, char*, char*);
|
|
|
30 |
|
|
|
31 |
extern Rune* runestrcat(Rune*, Rune*);
|
|
|
32 |
extern Rune* runestrchr(Rune*, Rune);
|
|
|
33 |
extern int runestrcmp(Rune*, Rune*);
|
|
|
34 |
extern Rune* runestrcpy(Rune*, Rune*);
|
|
|
35 |
extern Rune* runestrncpy(Rune*, Rune*, long);
|
|
|
36 |
extern Rune* runestrecpy(Rune*, Rune*, Rune*);
|
|
|
37 |
extern Rune* runestrdup(Rune*);
|
|
|
38 |
extern Rune* runestrncat(Rune*, Rune*, long);
|
|
|
39 |
extern int runestrncmp(Rune*, Rune*, long);
|
|
|
40 |
extern Rune* runestrrchr(Rune*, Rune);
|
|
|
41 |
extern long runestrlen(Rune*);
|
|
|
42 |
extern Rune* runestrstr(Rune*, Rune*);
|
|
|
43 |
|
|
|
44 |
extern Rune tolowerrune(Rune);
|
|
|
45 |
extern Rune totitlerune(Rune);
|
|
|
46 |
extern Rune toupperrune(Rune);
|
|
|
47 |
extern int isalpharune(Rune);
|
|
|
48 |
extern int islowerrune(Rune);
|
|
|
49 |
extern int isspacerune(Rune);
|
|
|
50 |
extern int istitlerune(Rune);
|
|
|
51 |
extern int isupperrune(Rune);
|
|
|
52 |
|
|
|
53 |
#endif
|