in Sources/TSCBasic/Path.swift [770:799]
func appending(component name: String) -> UNIXPath {
#if os(Windows)
var result: PWSTR?
_ = string.withCString(encodedAs: UTF16.self) { root in
name.withCString(encodedAs: UTF16.self) { path in
PathAllocCombine(root, path, ULONG(PATHCCH_ALLOW_LONG_PATHS.rawValue), &result)
}
}
defer { LocalFree(result) }
return PathImpl(string: String(decodingCString: result!, as: UTF16.self))
#else
assert(!name.contains("/"), "\(name) is invalid path component")
// Handle pseudo paths.
switch name {
case "", ".":
return self
case "..":
return self.parentDirectory
default:
break
}
if self == Self.root {
return PathImpl(string: "/" + name)
} else {
return PathImpl(string: string + "/" + name)
}
#endif
}