Skip to content

Commit 51b0c43

Browse files
committed
Platform (Windows): use %USERNAME% if available
1 parent 79e2007 commit 51b0c43

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/util/platform/FFPlatform_windows.c

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ static void getHomeDir(FFPlatform* platform)
4040
ffStrbufSetWS(&platform->homeDir, pPath);
4141
ffStrbufReplaceAllC(&platform->homeDir, '\\', '/');
4242
ffStrbufEnsureEndsWithC(&platform->homeDir, '/');
43+
CoTaskMemFree(pPath);
44+
}
45+
else
46+
{
47+
ffStrbufSetS(&platform->homeDir, getenv("USERPROFILE"));
48+
ffStrbufReplaceAllC(&platform->homeDir, '\\', '/');
49+
ffStrbufEnsureEndsWithC(&platform->homeDir, '/');
4350
}
44-
CoTaskMemFree(pPath);
4551
}
4652

4753
static void getCacheDir(FFPlatform* platform)
@@ -52,13 +58,13 @@ static void getCacheDir(FFPlatform* platform)
5258
ffStrbufSetWS(&platform->cacheDir, pPath);
5359
ffStrbufReplaceAllC(&platform->cacheDir, '\\', '/');
5460
ffStrbufEnsureEndsWithC(&platform->cacheDir, '/');
61+
CoTaskMemFree(pPath);
5562
}
5663
else
5764
{
5865
ffStrbufAppend(&platform->cacheDir, &platform->homeDir);
5966
ffStrbufAppendS(&platform->cacheDir, "AppData/Local/");
6067
}
61-
CoTaskMemFree(pPath);
6268
}
6369

6470
static void platformPathAddKnownFolder(FFlist* dirs, REFKNOWNFOLDERID folderId)
@@ -71,8 +77,8 @@ static void platformPathAddKnownFolder(FFlist* dirs, REFKNOWNFOLDERID folderId)
7177
ffStrbufEnsureEndsWithC(&buffer, '/');
7278
if (!ffListContains(dirs, &buffer, (void*) ffStrbufEqual))
7379
ffStrbufInitMove((FFstrbuf*) ffListAdd(dirs), &buffer);
80+
CoTaskMemFree(pPath);
7481
}
75-
CoTaskMemFree(pPath);
7682
}
7783

7884
static void platformPathAddEnvSuffix(FFlist* dirs, const char* env, const char* suffix)
@@ -130,10 +136,16 @@ static void getDataDirs(FFPlatform* platform)
130136

131137
static void getUserName(FFPlatform* platform)
132138
{
133-
wchar_t buffer[128];
134-
DWORD len = sizeof(buffer) / sizeof(*buffer);
135-
if(GetUserNameW(buffer, &len))
136-
ffStrbufSetWS(&platform->userName, buffer);
139+
const char* userName = getenv("USERNAME");
140+
if (ffStrSet(userName))
141+
ffStrbufSetS(&platform->userName, userName);
142+
else
143+
{
144+
wchar_t buffer[128];
145+
DWORD len = sizeof(buffer) / sizeof(*buffer);
146+
if(GetUserNameW(buffer, &len))
147+
ffStrbufSetWS(&platform->userName, buffer);
148+
}
137149
}
138150

139151
static void getHostName(FFPlatform* platform)

0 commit comments

Comments
 (0)