Use iconv to convert filenames from UTF-8.

Patch by miniupnp, with some C89 adjustments.
Enabled for Haiku and the generic Linux/*BSD part of the Makefile.
Please adjust as needed.

Fixes #10 for codepages for which we have a font.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2172 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues
2016-12-02 19:43:23 +00:00
parent 0ce386bb19
commit 0eaf3fce96
6 changed files with 117 additions and 13 deletions

View File

@@ -799,10 +799,23 @@ void Print_filename(void)
// Determine maximum size, in characters
max_size = 12 + (Screen_width / Menu_factor_X - 320) / 8;
string_size = strlen(Main_backups->Pages->Filename);
// Partial copy of the name
strncpy(display_string, Main_backups->Pages->Filename, max_size);
{
#ifdef ENABLE_FILENAMES_ICONV
char * input = Main_backups->Pages->Filename;
size_t inbytesleft = strlen(input);
char * output = display_string;
size_t outbytesleft = sizeof(display_string)-1;
if(cd != (iconv_t)-1 && (ssize_t)iconv(cd, &input, &inbytesleft, &output, &outbytesleft) >= 0)
*output = '\0';
else
#endif /* ENABLE_FILENAMES_ICONV */
{
strncpy(display_string, Main_backups->Pages->Filename, sizeof(display_string)-1);
display_string[sizeof(display_string)-1] = '\0';
}
}
string_size = strlen(display_string);
display_string[max_size]='\0';
if (string_size > max_size)