Skip to content

Commit 8a33393

Browse files
committed
More fix-ups upon clarity and correctness
1 parent 6f0bbe0 commit 8a33393

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

Sources/TSCBasic/Process.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,8 @@ public final class Process {
474474
)
475475
var searchPaths: [AbsolutePath] = []
476476
#if os(Windows)
477+
// NOTE: `CreateProcess` the Windows system API always searchs System and Windows directories first.
478+
// See https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw#parameters
477479
var buffer = Array<WCHAR>(repeating: 0, count: Int(MAX_PATH + 1))
478480
// The 32-bit Windows system directory
479481
if GetSystemDirectoryW(&buffer, .init(buffer.count)) > 0 {

Sources/TSCBasic/misc.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,9 @@ public func lookupExecutablePath(
225225
return nil
226226
}
227227
#if os(Windows)
228-
let isPath = value.contains(":") || value.contains("\\") || value.contains("/")
228+
let isFileName = !value.contains(":") && !value.contains("\\") && !value.contains("/")
229229
#else
230-
let isPath = value.contains("/")
230+
let isFileName = !value.contains("/")
231231
#endif
232232

233233
var paths: [AbsolutePath] = []
@@ -241,12 +241,11 @@ public func lookupExecutablePath(
241241
paths.append(absPath)
242242
}
243243

244-
// Ensure the value is not a path.
245-
if !isPath {
246-
// Try to locate in search paths.
244+
if isFileName {
245+
// Try to locate file in search paths.
247246
paths.append(contentsOf: searchPaths.map({ $0.appending(component: value) }))
248247
#if os(Windows)
249-
if !value.contains(".") {
248+
if !value.hasSuffix(".") {
250249
paths.append(contentsOf: searchPaths.map({ $0.appending(component: value + executableFileSuffix) }))
251250
}
252251
#endif

0 commit comments

Comments
 (0)