updated for version 7.4.123 v7.4.123
authorBram Moolenaar <Bram@vim.org>
Wed, 11 Dec 2013 17:18:06 +0000 (18:18 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 11 Dec 2013 17:18:06 +0000 (18:18 +0100)
Problem:    Win32: Getting user name does not use wide function.
Solution:   Use GetUserNameW() if possible. (Ken Takata)

src/os_win32.c
src/version.c

index 2d5544b44291214592f4dc62f6068bd40e317c20..06cc315e5537b0c73b72d50c4cc1459d8554f634 100644 (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);
index 4bfd68ff91835b2fc621e73d220b32efa00e3a61..8a44a1c54dad5b5026ba345f1986c9fdd345b730 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    123,
 /**/
     122,
 /**/