From b0fee17d6e1a463dcd84568e5997663b69488998 Mon Sep 17 00:00:00 2001 From: Marcoen Hirschberg Date: Tue, 6 Dec 2005 13:27:15 +0000 Subject: waiting is over: initial unicode commit git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8169 a1c6a512-1295-4272-9138-f99709370657 --- firmware/include/rbunicode.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 firmware/include/rbunicode.h (limited to 'firmware/include/rbunicode.h') diff --git a/firmware/include/rbunicode.h b/firmware/include/rbunicode.h new file mode 100644 index 0000000000..1d4bc43096 --- /dev/null +++ b/firmware/include/rbunicode.h @@ -0,0 +1,29 @@ +/* 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); -- cgit v1.2.3