mirror of
https://github.com/0intro/wmii
synced 2024-11-25 07:09:38 +03:00
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
|
#ifndef _UTF_H_
|
||
|
#define _UTF_H_ 1
|
||
|
|
||
|
typedef unsigned short Rune; /* 16 bits */
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
UTFmax = 3, /* maximum bytes per rune */
|
||
|
Runesync = 0x80, /* cannot represent part of a UTF sequence (<) */
|
||
|
Runeself = 0x80, /* rune and UTF sequences are the same (<) */
|
||
|
Runeerror = 0xFFFD, /* decoding error in UTF */
|
||
|
};
|
||
|
|
||
|
/* Edit .+1,/^$/ | cfn $PLAN9/src/lib9/utf/?*.c | grep -v static |grep -v __ */
|
||
|
int chartorune(Rune *rune, char *str);
|
||
|
int fullrune(char *str, int n);
|
||
|
int isalpharune(Rune c);
|
||
|
int islowerrune(Rune c);
|
||
|
int isspacerune(Rune c);
|
||
|
int istitlerune(Rune c);
|
||
|
int isupperrune(Rune c);
|
||
|
int runelen(long c);
|
||
|
int runenlen(Rune *r, int nrune);
|
||
|
Rune* runestrcat(Rune *s1, Rune *s2);
|
||
|
Rune* runestrchr(Rune *s, Rune c);
|
||
|
int runestrcmp(Rune *s1, Rune *s2);
|
||
|
Rune* runestrcpy(Rune *s1, Rune *s2);
|
||
|
Rune* runestrdup(Rune *s) ;
|
||
|
Rune* runestrecpy(Rune *s1, Rune *es1, Rune *s2);
|
||
|
long runestrlen(Rune *s);
|
||
|
Rune* runestrncat(Rune *s1, Rune *s2, long n);
|
||
|
int runestrncmp(Rune *s1, Rune *s2, long n);
|
||
|
Rune* runestrncpy(Rune *s1, Rune *s2, long n);
|
||
|
Rune* runestrrchr(Rune *s, Rune c);
|
||
|
Rune* runestrstr(Rune *s1, Rune *s2);
|
||
|
int runetochar(char *str, Rune *rune);
|
||
|
Rune tolowerrune(Rune c);
|
||
|
Rune totitlerune(Rune c);
|
||
|
Rune toupperrune(Rune c);
|
||
|
char* utfecpy(char *to, char *e, char *from);
|
||
|
int utflen(char *s);
|
||
|
int utfnlen(char *s, long m);
|
||
|
char* utfrrune(char *s, long c);
|
||
|
char* utfrune(char *s, long c);
|
||
|
char* utfutf(char *s1, char *s2);
|
||
|
|
||
|
#endif
|