utf.h - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       utf.h (2256B)
       ---
            1 /*
            2  * The authors of this software are Rob Pike and Ken Thompson.
            3  *              Copyright (c) 1998-2002 by Lucent Technologies.
            4  * Permission to use, copy, modify, and distribute this software for any
            5  * purpose without fee is hereby granted, provided that this entire notice
            6  * is included in all copies of any software which is or includes a copy
            7  * or modification of this software and in all copies of the supporting
            8  * documentation for such software.
            9  * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
           10  * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY
           11  * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
           12  * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
           13  */
           14 #ifndef _UTF_H_
           15 #define _UTF_H_ 1
           16 #if defined(__cplusplus)
           17 extern "C" { 
           18 #endif
           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 /* Edit .+1,/^$/ | cfn $PLAN9/src/lib9/utf/?*.c | grep -v static |grep -v __ */
           29 int                chartorune(Rune *rune, char *str);
           30 int                fullrune(char *str, int n);
           31 int                isalpharune(Rune c);
           32 int                islowerrune(Rune c);
           33 int                isspacerune(Rune c);
           34 int                istitlerune(Rune c);
           35 int                isupperrune(Rune c);
           36 int                runelen(long c);
           37 int                runenlen(Rune *r, int nrune);
           38 Rune*                runestrcat(Rune *s1, Rune *s2);
           39 Rune*                runestrchr(Rune *s, Rune c);
           40 int                runestrcmp(Rune *s1, Rune *s2);
           41 Rune*                runestrcpy(Rune *s1, Rune *s2);
           42 Rune*                runestrdup(Rune *s) ;
           43 Rune*                runestrecpy(Rune *s1, Rune *es1, Rune *s2);
           44 long                runestrlen(Rune *s);
           45 Rune*                runestrncat(Rune *s1, Rune *s2, long n);
           46 int                runestrncmp(Rune *s1, Rune *s2, long n);
           47 Rune*                runestrncpy(Rune *s1, Rune *s2, long n);
           48 Rune*                runestrrchr(Rune *s, Rune c);
           49 Rune*                runestrstr(Rune *s1, Rune *s2);
           50 int                runetochar(char *str, Rune *rune);
           51 Rune                tolowerrune(Rune c);
           52 Rune                totitlerune(Rune c);
           53 Rune                toupperrune(Rune c);
           54 char*                utfecpy(char *to, char *e, char *from);
           55 int                utflen(char *s);
           56 int                utfnlen(char *s, long m);
           57 char*                utfrrune(char *s, long c);
           58 char*                utfrune(char *s, long c);
           59 char*                utfutf(char *s1, char *s2);
           60 
           61 #if defined(__cplusplus)
           62 }
           63 #endif
           64 #endif