Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit dcd5d47

Browse files
committed
Will use latest found Erlang version (rather than a preferred and then some indeterminate fallback)
1 parent 1e5d5a3 commit dcd5d47

File tree

1 file changed

+11
-30
lines changed

1 file changed

+11
-30
lines changed

src/erlang_env.iss

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,31 @@
1515
1616
[Code]
1717
18-
function GetErlangPath(Of64Bit: Boolean; PrefVersion: String): String;
18+
function GetLatestErlangPathOfArch(Of64Bit: Boolean): String;
1919
var
20-
Versions: TArrayOfString;
21-
Path: String;
22-
KeyPath: String;
20+
ERTSVersions: TArrayOfString;
21+
SubKeyName: String;
2322
begin
2423
Result := '';
2524
2625
if Of64Bit then begin
27-
KeyPath := 'SOFTWARE\Wow6432Node\Ericsson\Erlang';
26+
SubKeyName := 'SOFTWARE\Wow6432Node\Ericsson\Erlang';
2827
end else begin
29-
KeyPath := 'SOFTWARE\Ericsson\Erlang';
28+
SubKeyName := 'SOFTWARE\Ericsson\Erlang';
3029
end;
3130
32-
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, KeyPath, Versions) then begin
33-
if RegQueryStringValue(HKEY_LOCAL_MACHINE, KeyPath + '\' + PrefVersion, '', Path) then begin
34-
Result := Path;
35-
end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, KeyPath + '\' + Versions[GetArrayLength(Versions) - 1], '', Path) then begin
36-
Result := Path;
37-
end;
38-
end;
31+
ERTSVersions := FuncRegGetSubkeyNames(HKEY_LOCAL_MACHINE, SubKeyName);
32+
if GetArrayLength(ERTSVersions) <> 0 then
33+
Result := FuncRegQueryStringValue(HKEY_LOCAL_MACHINE, SubKeyName + '\' + GetLatestVersion(ERTSVersions));
3934
end;
4035
41-
function GetExistingErlangPath(PrefVersion: String): String;
36+
function GetLatestErlangPath: String;
4237
begin
4338
Result := '';
4439
if IsWin64 then
45-
Result := GetErlangPath(True, PrefVersion);
40+
Result := GetLatestErlangPathOfArch(True);
4641
if Result = '' then
47-
Result := GetErlangPath(False, PrefVersion);
42+
Result := GetLatestErlangPathOfArch(False);
4843
end;
4944
5045
function ErlangInPath: Boolean;
@@ -53,17 +48,3 @@ var
5348
begin
5449
Result := Exec('erl.exe', '+V', '', SW_HIDE, ewWaitUntilTerminated, _int);
5550
end;
56-
57-
procedure AppendErlangPath(Of64Bit: Boolean; PrefVersion: String);
58-
var
59-
Path: String;
60-
RegValue: String;
61-
begin
62-
Path := GetErlangPath(Of64Bit, PrefVersion);
63-
if not (Path = '') then begin
64-
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', RegValue);
65-
if Pos(Path, RegValue) = 0 then begin
66-
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', RegValue + ';' + Path + '\bin');
67-
end;
68-
end;
69-
end;

0 commit comments

Comments
 (0)