}
int wc_to_mb(int codepage, int flags, const wchar_t *wcstr, int wclen,
- char *mbstr, int mblen, char *defchr, int *defused,
+ char *mbstr, int mblen, const char *defchr, int *defused,
struct unicode_data *ucsdata)
{
/* FIXME: we should remove the defused param completely... */
const char *cp_enumerate(int index)
{
int charset;
- if (index == 0)
- return "Use font encoding";
- charset = charset_localenc_nth(index-1);
- if (charset == CS_NONE)
+ charset = charset_localenc_nth(index);
+ if (charset == CS_NONE) {
+ /* "Use font encoding" comes after all the named charsets */
+ if (charset_localenc_nth(index-1) != CS_NONE)
+ return "Use font encoding";
return NULL;
+ }
return charset_to_localenc(charset);
}
int decode_codepage(char *cp_name)
{
- if (!*cp_name)
- return CS_NONE; /* use font encoding */
+ if (!cp_name || !*cp_name)
+ return CS_UTF8;
return charset_from_localenc(cp_name);
}