[USERENV] Add %HOMEDRIVE% and %HOMEPATH% environment variables. Brought to you by...
authorAmine Khaldi <amine.khaldi@reactos.org>
Fri, 26 Jun 2015 18:59:25 +0000 (18:59 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Fri, 26 Jun 2015 18:59:25 +0000 (18:59 +0000)
svn path=/trunk/; revision=68284

reactos/dll/win32/userenv/environment.c
reactos/dll/win32/userenv/precomp.h

index ccb36d8..47af4e0 100644 (file)
@@ -510,10 +510,30 @@ CreateEnvironmentBlock(LPVOID *lpEnvironment,
                                  Buffer,
                                  &Length))
     {
+        DWORD MinLen = 2;
+
         SetUserEnvironmentVariable(lpEnvironment,
                                    L"USERPROFILE",
                                    Buffer,
                                    FALSE);
+
+        /* At least <drive letter>:<path> */
+        if (Length > MinLen)
+        {
+            /* Set 'HOMEDRIVE' variable */
+            StringCchCopyNW(szValue, MAX_PATH, Buffer, MinLen);
+            SetUserEnvironmentVariable(lpEnvironment,
+                                       L"HOMEDRIVE",
+                                       szValue,
+                                       FALSE);
+
+            /* Set 'HOMEPATH' variable */
+            StringCchCopyNW(szValue, MAX_PATH, Buffer + MinLen, Length - MinLen);
+            SetUserEnvironmentVariable(lpEnvironment,
+                                       L"HOMEPATH",
+                                       szValue,
+                                       FALSE);
+        }
     }
 
     if (GetUserAndDomainName(hToken,
index 814688f..ecb00c6 100644 (file)
@@ -15,6 +15,7 @@
 #define NTOS_MODE_USER
 #include <ndk/rtlfuncs.h>
 #include <userenv.h>
+#include <strsafe.h>
 
 #include "internal.h"