Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Lib/v2/AHK_Common.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,16 @@ InitScript(requireUIA := true, requireAdmin := false, optimize := true) {
}

FindExe(name, fallbacks := []) {
if (name == "")
return ""
if FileExist(name)
return name
Loop Parse, EnvGet("PATH"), ";"
{
p := Trim(A_LoopField)
p := Trim(A_LoopField, " `t`"")
if !p
continue
cand := p . "\" . name
cand := RTrim(p, "\") . "\" . name
if FileExist(cand)
return cand
}
Expand Down
15 changes: 15 additions & 0 deletions tests/FindExe_Test.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,21 @@ try {
EnvSet("PATH", ";;" . mockPath . ";;")
AssertEqual(testBaseDir . "\PathDir2\tool.exe", FindExe("tool.exe"), "Should handle empty entries in PATH")

; Test 6: Whitespace around PATH entries
EnvSet("PATH", " " . testBaseDir . "\PathDir2 ")
AssertEqual(testBaseDir . "\PathDir2\tool.exe", FindExe("tool.exe"), "Should handle whitespace in PATH entries")

; Test 7: Quotes in PATH entries
EnvSet("PATH", "`"" . testBaseDir . "\PathDir2`"")
AssertEqual(testBaseDir . "\PathDir2\tool.exe", FindExe("tool.exe"), "Should handle quotes in PATH entries")

; Test 8: Trailing slashes in PATH entries
EnvSet("PATH", testBaseDir . "\PathDir2\")
AssertEqual(testBaseDir . "\PathDir2\tool.exe", FindExe("tool.exe"), "Should handle trailing slashes in PATH entries")

; Test 9: Empty name parameter
AssertEqual("", FindExe(""), "Should return empty string if name is empty")

; Final Results
stdout.WriteLine("---")
stdout.WriteLine("Tests Passed: " . testsPassed)
Expand Down
Loading