aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/common
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2017-10-18 10:22:00 +0200
committerLukas Larsson <[email protected]>2017-10-18 10:22:00 +0200
commit9afdaa2a401a0dbe5820df48212d33ec2cdb6144 (patch)
treec4117b8966456e1da77fe31ae84353d028bb367a /erts/etc/common
parentb73c4d012e122547c896f64d92ef9af3e531433e (diff)
parentb7a5e370d7a7a1b6cfc9c96cb56d7acfc0fa944b (diff)
downloadotp-9afdaa2a401a0dbe5820df48212d33ec2cdb6144.tar.gz
otp-9afdaa2a401a0dbe5820df48212d33ec2cdb6144.tar.bz2
otp-9afdaa2a401a0dbe5820df48212d33ec2cdb6144.zip
Merge branch 'lukas/erts/win_user_home_dir/OTP-14691' into maint
* lukas/erts/win_user_home_dir/OTP-14691: erts: Use PROFILE dir as home on windows
Diffstat (limited to 'erts/etc/common')
-rw-r--r--erts/etc/common/erlexec.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/erts/etc/common/erlexec.c b/erts/etc/common/erlexec.c
index 51ed2d0dff..eaa94cd5e4 100644
--- a/erts/etc/common/erlexec.c
+++ b/erts/etc/common/erlexec.c
@@ -36,6 +36,7 @@
#ifdef __WIN32__
# include "erl_version.h"
# include "init_file.h"
+# include <Shlobj.h>
#endif
#define NO 0
@@ -1541,17 +1542,16 @@ static void get_parameters(int argc, char** argv)
static void
get_home(void)
{
- int len;
- char tmpstr[MAX_PATH+1];
+ wchar_t *profile;
char* homedrive;
char* homepath;
homedrive = get_env("HOMEDRIVE");
homepath = get_env("HOMEPATH");
if (!homedrive || !homepath) {
- if (len = GetWindowsDirectory(tmpstr,MAX_PATH)) {
- home = emalloc(len+1);
- strcpy(home,tmpstr);
+ if (SHGetKnownFolderPath(&FOLDERID_Profile, 0, NULL, &profile) == S_OK) {
+ home = utf16_to_utf8(profile);
+ /* CoTaskMemFree(profile); */
} else
error("HOMEDRIVE or HOMEPATH is not set and GetWindowsDir failed");
} else {