Browse Source

mingw: get pw_name in UTF-8 format

Previously, we would have obtained the user name encoded in whatever the
current code page is.

Note: the "user name" here does not denote the full name but instead the
short logon name.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 6 years ago committed by Junio C Hamano
parent
commit
39a98e9b68
  1. 10
      compat/mingw.c

10
compat/mingw.c

@ -1946,13 +1946,19 @@ struct passwd *getpwuid(int uid) @@ -1946,13 +1946,19 @@ struct passwd *getpwuid(int uid)
static unsigned initialized;
static char user_name[100];
static struct passwd *p;
wchar_t buf[100];
DWORD len;

if (initialized)
return p;

len = sizeof(user_name);
if (!GetUserName(user_name, &len)) {
len = sizeof(buf);
if (!GetUserNameW(buf, &len)) {
initialized = 1;
return NULL;
}

if (xwcstoutf(user_name, buf, sizeof(user_name)) < 0) {
initialized = 1;
return NULL;
}

Loading…
Cancel
Save