rockbox/firmware/include/rbunicode.h

30 lines
1.1 KiB
C
Raw Normal View History

/* Some conversion functions for handling UTF-8
*
* copyright Marcoen Hirschberg (2004,2005)
*
* I got all the info from:
* http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
* and
* http://en.wikipedia.org/wiki/Unicode
*/
#define CODEPAGE_DIR "/.rockbox/codepages"
#define MAX_CP_TABLE_SIZE 32768
#define MASK 0xC0 /* 11000000 */
#define COMP 0x80 /* 10x */
extern int codepage;
/* Encode a UCS value as UTF-8 and return a pointer after this UTF-8 char. */
unsigned char* utf8encode(unsigned long ucs, unsigned char *utf8);
unsigned char* iso_decode(const unsigned char *latin1, unsigned char *utf8, int cp, int count);
unsigned char* utf16LEdecode(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
unsigned char* utf16BEdecode(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
unsigned char* utf16decode(const unsigned char *utf16, unsigned char *utf8, unsigned int count);
unsigned long utf8length(const unsigned char *utf8);
const unsigned char* utf8decode(const unsigned char *utf8, unsigned short *ucs);
void set_codepage(int cp);
int utf8seek(const unsigned char* utf8, int offset);