From: Bram Moolenaar Date: Wed, 11 Dec 2013 17:18:06 +0000 (+0100) Subject: updated for version 7.4.123 X-Git-Tag: v7.4.123 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c8020ee825b9d9196b1329c0e097424576fc9b3a;p=vim updated for version 7.4.123 Problem: Win32: Getting user name does not use wide function. Solution: Use GetUserNameW() if possible. (Ken Takata) --- diff --git a/src/os_win32.c b/src/os_win32.c index 2d5544b44..06cc315e5 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -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); diff --git a/src/version.c b/src/version.c index 4bfd68ff9..8a44a1c54 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 123, /**/ 122, /**/