@@ -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
4753static 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
6470static 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
7884static void platformPathAddEnvSuffix (FFlist * dirs , const char * env , const char * suffix )
@@ -130,10 +136,16 @@ static void getDataDirs(FFPlatform* platform)
130136
131137static 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
139151static void getHostName (FFPlatform * platform )
0 commit comments