codepages: Translate to linux codepage names for use on APPLICATION.

The iocharset mount option names the codepages slightly differently and
must be translated properly.

Change-Id: I147a256e3453136282244201c27225a30cdfdca0
This commit is contained in:
Thomas Martitz 2014-02-07 16:53:27 +01:00
parent facbaab195
commit 07f484824c
2 changed files with 32 additions and 0 deletions

View File

@ -79,6 +79,35 @@ static const char * const name_codepages[NUM_CODEPAGES+1] =
"unknown"
};
#if defined(APPLICATION) && defined(__linux__)
static const char * const name_codepages_linux[NUM_CODEPAGES+1] =
{
"iso8859-1",
"iso8859-7",
"iso8859-8",
"cp1251",
"iso8859-11",
"cp1256",
"iso8859-9",
"iso8859-2",
"cp1250",
"iso8859-15" /* closest, linux doesnt have a codepage named cp1252 */
"cp932",
"cp936",
"cp949",
"cp950",
"utf8",
"cp437"
};
const char *get_current_codepage_name_linux(void)
{
if (default_codepage < 0 || default_codepage >= NUM_CODEPAGES)
return name_codepages_linux[NUM_CODEPAGES];
return name_codepages_linux[default_codepage];
}
#endif
#else /* !HAVE_LCD_BITMAP, reduced support */
#define MAX_CP_TABLE_SIZE 768

View File

@ -80,4 +80,7 @@ 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);
#if defined(APPLICATION) && defined(__linux__)
const char *get_current_codepage_name_linux(void);
#endif
#endif /* _RBUNICODE_H_ */