From fda4ac12e04694679322ff2f35734e0f3aa0a8c4 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Sun, 24 Dec 2023 05:26:14 +0000 Subject: [PATCH] Fix use of `errno` in `SystemError` --- Sources/TSCBasic/Process/Process.swift | 2 +- Sources/TSCBasic/misc.swift | 10 ++-------- Sources/TSCUtility/InterruptHandler.swift | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Sources/TSCBasic/Process/Process.swift b/Sources/TSCBasic/Process/Process.swift index 8bb3edf2..539cb08c 100644 --- a/Sources/TSCBasic/Process/Process.swift +++ b/Sources/TSCBasic/Process/Process.swift @@ -1362,7 +1362,7 @@ private func close(fd: Int32) throws { func innerClose(_ fd: inout Int32) throws { let rv = TSCLibc.close(fd) guard rv == 0 else { - throw SystemError.close(rv) + throw SystemError.close(errno) } } var innerFd = fd diff --git a/Sources/TSCBasic/misc.swift b/Sources/TSCBasic/misc.swift index 58a302de..63c05fd7 100644 --- a/Sources/TSCBasic/misc.swift +++ b/Sources/TSCBasic/misc.swift @@ -347,14 +347,8 @@ extension SystemError: CustomStringConvertible { switch self { case .chdir(let errno, let path): return "chdir error: \(strerror(errno)): \(path)" - case .close(let err): - let errorMessage: String - if err == -1 { // if the return code is -1, we need to consult the global `errno` - errorMessage = strerror(errno) - } else { - errorMessage = strerror(err) - } - return "close error: \(errorMessage)" + case .close(let errno): + return "close error: \(strerror(errno))" case .exec(let errno, let path, let args): let joinedArgs = args.joined(separator: " ") return "exec error: \(strerror(errno)): \(path) \(joinedArgs)" diff --git a/Sources/TSCUtility/InterruptHandler.swift b/Sources/TSCUtility/InterruptHandler.swift index c10d4fe1..7590bc86 100644 --- a/Sources/TSCUtility/InterruptHandler.swift +++ b/Sources/TSCUtility/InterruptHandler.swift @@ -88,7 +88,7 @@ public final class InterruptHandler { // Create pipe. let rv = TSCLibc.pipe(&Self.signalWatchingPipe) guard rv == 0 else { - throw SystemError.pipe(rv) + throw SystemError.pipe(errno) } #endif