0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.4.123

Problem:    Win32: Getting user name does not use wide function.
Solution:   Use GetUserNameW() if possible. (Ken Takata)
This commit is contained in:
Bram Moolenaar
2013-12-11 18:18:06 +01:00
parent 910cffbb5e
commit c8020ee825
2 changed files with 22 additions and 0 deletions

View File

@@ -2768,6 +2768,26 @@ mch_get_user_name(
char szUserName[256 + 1]; /* UNLEN is 256 */
DWORD cch = sizeof szUserName;
#ifdef FEAT_MBYTE
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
{
WCHAR wszUserName[256 + 1]; /* UNLEN is 256 */
DWORD wcch = sizeof(wszUserName) / sizeof(WCHAR);
if (GetUserNameW(wszUserName, &wcch))
{
char_u *p = utf16_to_enc(wszUserName, NULL);
if (p != NULL)
{
vim_strncpy(s, p, len - 1);
vim_free(p);
return OK;
}
}
/* Retry with non-wide function (for Windows 98). */
}
#endif
if (GetUserName(szUserName, &cch))
{
vim_strncpy(s, szUserName, len - 1);