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 _UTF_H_
2
#define _UTF_H_ 1
3
#pragma lib "/$M/lib/ape/libutf.a"
4
#pragma src "/sys/src/ape/lib/utf"
5
 
6
#if defined(__cplusplus)
7
extern "C" { 
8
#endif
9
 
10
typedef unsigned int Rune;	/* 32 bits */
11
 
12
enum
13
{
14
	UTFmax		= 4,		/* maximum bytes per rune */
15
	Runesync	= 0x80,		/* cannot represent part of a UTF sequence (<) */
16
	Runeself	= 0x80,		/* rune and UTF sequences are the same (<) */
17
	Runeerror	= 0xFFFD,	/* decoding error in UTF */
18
	Runemax		= 0x10FFFF,	/* 21-bit rune */
19
};
20
 
21
/*
22
 * rune routines
23
 */
24
extern	int	runetochar(char*, Rune*);
25
extern	int	chartorune(Rune*, char*);
26
extern	int	runelen(long);
27
extern	int	runenlen(Rune*, int);
28
extern	int	fullrune(char*, int);
29
extern	int	utflen(char*);
30
extern	int	utfnlen(char*, long);
31
extern	char*	utfrune(char*, long);
32
extern	char*	utfrrune(char*, long);
33
extern	char*	utfutf(char*, char*);
34
extern	char*	utfecpy(char*, char*, char*);
35
 
36
extern	Rune*	runestrcat(Rune*, Rune*);
37
extern	Rune*	runestrchr(Rune*, Rune);
38
extern	int	runestrcmp(Rune*, Rune*);
39
extern	Rune*	runestrcpy(Rune*, Rune*);
40
extern	Rune*	runestrncpy(Rune*, Rune*, long);
41
extern	Rune*	runestrecpy(Rune*, Rune*, Rune*);
42
extern	Rune*	runestrdup(Rune*);
43
extern	Rune*	runestrncat(Rune*, Rune*, long);
44
extern	int	runestrncmp(Rune*, Rune*, long);
45
extern	Rune*	runestrrchr(Rune*, Rune);
46
extern	long	runestrlen(Rune*);
47
extern	Rune*	runestrstr(Rune*, Rune*);
48
 
49
extern	Rune	tolowerrune(Rune);
50
extern	Rune	totitlerune(Rune);
51
extern	Rune	toupperrune(Rune);
52
extern	int	isalpharune(Rune);
53
extern	int	islowerrune(Rune);
54
extern	int	isspacerune(Rune);
55
extern	int	istitlerune(Rune);
56
extern	int	isupperrune(Rune);
57
 
58
#if defined(__cplusplus)
59
}
60
#endif
61
#endif