Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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