plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

utf.h (1507B)


      1 #ifndef _UTFH_
      2 #define _UTFH_ 1
      3 #ifdef __cplusplus
      4 extern "C" {
      5 #endif
      6 
      7 typedef unsigned short Rune;	/* 16 bits */
      8 
      9 enum
     10 {
     11 	UTFmax		= 3,		/* 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	= 0x80,		/* decoding error in UTF */
     15 };
     16 
     17 /*
     18  * rune routines
     19  */
     20 extern	int	runetochar(char*, Rune*);
     21 extern	int	chartorune(Rune*, char*);
     22 extern	int	runelen(long);
     23 extern	int	runenlen(Rune*, int);
     24 extern	int	fullrune(char*, int);
     25 extern	int	utflen(char*);
     26 extern	int	utfnlen(char*, long);
     27 extern	char*	utfrune(char*, long);
     28 extern	char*	utfrrune(char*, long);
     29 extern	char*	utfutf(char*, char*);
     30 extern	char*	utfecpy(char*, char*, char*);
     31 
     32 extern	Rune*	runestrcat(Rune*, Rune*);
     33 extern	Rune*	runestrchr(Rune*, Rune);
     34 extern	int	runestrcmp(Rune*, Rune*);
     35 extern	Rune*	runestrcpy(Rune*, Rune*);
     36 extern	Rune*	runestrncpy(Rune*, Rune*, long);
     37 extern	Rune*	runestrecpy(Rune*, Rune*, Rune*);
     38 extern	Rune*	runestrdup(Rune*);
     39 extern	Rune*	runestrncat(Rune*, Rune*, long);
     40 extern	int	runestrncmp(Rune*, Rune*, long);
     41 extern	Rune*	runestrrchr(Rune*, Rune);
     42 extern	long	runestrlen(Rune*);
     43 extern	Rune*	runestrstr(Rune*, Rune*);
     44 
     45 extern	Rune	tolowerrune(Rune);
     46 extern	Rune	totitlerune(Rune);
     47 extern	Rune	toupperrune(Rune);
     48 extern	int	isalpharune(Rune);
     49 extern	int	islowerrune(Rune);
     50 extern	int	isspacerune(Rune);
     51 extern	int	istitlerune(Rune);
     52 extern	int	isupperrune(Rune);
     53 
     54 #ifdef cplusplus
     55 }
     56 #endif
     57 #endif