From af078b4f86cb124778073905b2c28cc2d9b7748b Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 4 Dec 2008 22:00:12 +0000 Subject: Cleaned up codepage handling, by Yoshihisa Uchida. (FS#9349) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19339 a1c6a512-1295-4272-9138-f99709370657 --- firmware/include/rbunicode.h | 46 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) (limited to 'firmware/include') diff --git a/firmware/include/rbunicode.h b/firmware/include/rbunicode.h index 6e61905685..39fe253f3d 100644 --- a/firmware/include/rbunicode.h +++ b/firmware/include/rbunicode.h @@ -1,16 +1,56 @@ -/* Some conversion functions for handling UTF-8 +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (c) 2004,2005 by Marcoen Hirschberg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. * - * copyright Marcoen Hirschberg (2004,2005) + ****************************************************************************/ +/* Some conversion functions for handling UTF-8 * * I got all the info from: * http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 * and * http://en.wikipedia.org/wiki/Unicode */ +#ifndef _RBUNICODE_H_ +#define _RBUNICODE_H_ + +#ifndef __PCTOOL__ +#include "config.h" +#endif #define MASK 0xC0 /* 11000000 */ #define COMP 0x80 /* 10x */ +#ifdef HAVE_LCD_BITMAP + +enum codepages { + ISO_8859_1 = 0, ISO_8859_7, ISO_8859_8, WIN_1251, + ISO_8859_11, WIN_1256, ISO_8859_9, ISO_8859_2, WIN_1250, + SJIS, GB_2312, KSX_1001, BIG_5, UTF_8, NUM_CODEPAGES +}; + +#else /* !HAVE_LCD_BITMAP, reduced support */ + +enum codepages { + ISO_8859_1 = 0, ISO_8859_7, WIN_1251, ISO_8859_9, + ISO_8859_2, WIN_1250, UTF_8, NUM_CODEPAGES +}; + +#endif /* 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); @@ -21,3 +61,5 @@ 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); +const char* get_codepage_name(int cp); +#endif /* _RBUNICODE_H_ */ -- cgit v1.2.3