readline.c: fix 8b2e925c
This commit is contained in:
parent
2c9b79a6af
commit
00323b1942
16
src/osdep.c
16
src/osdep.c
@ -311,6 +311,22 @@ char * Unicode_to_utf8(const word * str, size_t * utf8len)
|
|||||||
return utf8;
|
return utf8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UTF8 to Unicode (16bits per character).
|
||||||
|
* use MultiByteToWideChar(CP_UTF8, ...) under WIN32.
|
||||||
|
* Note : For UTF-8, dwFlags must be set to either 0 or MB_ERR_INVALID_CHARS.
|
||||||
|
*/
|
||||||
|
void Unicode_from_utf8(const char * utf8, word * unicode, size_t unicodelen)
|
||||||
|
{
|
||||||
|
int r = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, (LPWSTR)unicode, unicodelen);
|
||||||
|
if (r == 0)
|
||||||
|
{
|
||||||
|
GFX2_Log(GFX2_ERROR, "MultiByteToWideChar(CP_UTF8, \"%s\", ...) failed with error #%u\n", utf8, GetLastError());
|
||||||
|
unicode[0] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -56,6 +56,7 @@ unsigned long Memory_free(void);
|
|||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
char * Unicode_to_utf8(const word * str, size_t * utf8len);
|
char * Unicode_to_utf8(const word * str, size_t * utf8len);
|
||||||
|
void Unicode_from_utf8(const char * utf8, word * unicode, size_t unicodelen);
|
||||||
|
|
||||||
void GFX2_GetShortPathName(char * shortname, size_t shortname_len, const word * longname);
|
void GFX2_GetShortPathName(char * shortname, size_t shortname_len, const word * longname);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -709,15 +709,7 @@ byte Readline_ex_unicode(word x_pos, word y_pos, char * str, word * str_unicode,
|
|||||||
unicode_text[0] = 0;
|
unicode_text[0] = 0;
|
||||||
}
|
}
|
||||||
#elif defined(WIN32)
|
#elif defined(WIN32)
|
||||||
// use MultiByteToWideChar(CP_UTF8, ...) under WIN32
|
Unicode_from_utf8(Key_Text, unicode_text, sizeof(unicode_text)/sizeof(word));
|
||||||
// Note : For UTF-8, dwFlags must be set to either 0 or
|
|
||||||
// MB_ERR_INVALID_CHARS.
|
|
||||||
i = MultiByteToWideChar(CP_UTF8, 0, Key_Text, -1, (LPWSTR)unicode_text, sizeof(unicode_text)/sizeof(word));
|
|
||||||
if (i == 0)
|
|
||||||
{
|
|
||||||
GFX2_Log(GFX2_ERROR, "MultiByteToWideChar(CP_UTF8, \"%s\", ...) failed with error #%u\n", Key_Text, GetLastError());
|
|
||||||
unicode_text[0] = 0;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
int j;
|
int j;
|
||||||
for (i = 0, j = 0; i < (int)sizeof(Key_Text) && j < (int)sizeof(unicode_text) && Key_Text[i] != '\0'; i++)
|
for (i = 0, j = 0; i < (int)sizeof(Key_Text) && j < (int)sizeof(unicode_text) && Key_Text[i] != '\0'; i++)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user