func appending()

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
    }