1 | #ifndef js_utf_h |
---|---|
2 | #define js_utf_h |
3 | |
4 | typedef unsigned short Rune; /* 16 bits */ |
5 | |
6 | #define chartorune jsU_chartorune |
7 | #define runetochar jsU_runetochar |
8 | #define runelen jsU_runelen |
9 | #define utflen jsU_utflen |
10 | |
11 | #define isalpharune jsU_isalpharune |
12 | #define islowerrune jsU_islowerrune |
13 | #define isspacerune jsU_isspacerune |
14 | #define istitlerune jsU_istitlerune |
15 | #define isupperrune jsU_isupperrune |
16 | #define tolowerrune jsU_tolowerrune |
17 | #define totitlerune jsU_totitlerune |
18 | #define toupperrune jsU_toupperrune |
19 | |
20 | enum |
21 | { |
22 | UTFmax = 3, /* maximum bytes per rune */ |
23 | Runesync = 0x80, /* cannot represent part of a UTF sequence (<) */ |
24 | Runeself = 0x80, /* rune and UTF sequences are the same (<) */ |
25 | Runeerror = 0xFFFD, /* decoding error in UTF */ |
26 | }; |
27 | |
28 | int chartorune(Rune *rune, const char *str); |
29 | int runetochar(char *str, const Rune *rune); |
30 | int runelen(int c); |
31 | int utflen(const char *s); |
32 | |
33 | int isalpharune(Rune c); |
34 | int islowerrune(Rune c); |
35 | int isspacerune(Rune c); |
36 | int istitlerune(Rune c); |
37 | int isupperrune(Rune c); |
38 | Rune tolowerrune(Rune c); |
39 | Rune totitlerune(Rune c); |
40 | Rune toupperrune(Rune c); |
41 | |
42 | #endif |
43 |