From bdf0a515f937a54e6c84b96b8a14778cafa023d5 Mon Sep 17 00:00:00 2001 From: Mike Simons Date: Wed, 10 Jun 2026 13:51:06 -0400 Subject: [PATCH] fix: print path triggering containsControlCharacters error --- Sources/File System Primitives/File.Path.Error.swift | 6 +++--- Sources/File System Primitives/File.Path.swift | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Sources/File System Primitives/File.Path.Error.swift b/Sources/File System Primitives/File.Path.Error.swift index 480cdab..ac1b608 100644 --- a/Sources/File System Primitives/File.Path.Error.swift +++ b/Sources/File System Primitives/File.Path.Error.swift @@ -15,7 +15,7 @@ extension File.Path { /// /// Control characters are invalid in file paths and can cause /// security issues or unexpected behavior with system calls. - case containsControlCharacters + case containsControlCharacters(String) } } @@ -26,8 +26,8 @@ extension File.Path.Error: CustomStringConvertible { switch self { case .empty: return "Path is empty" - case .containsControlCharacters: - return "Path contains control characters" + case .containsControlCharacters(let path): + return "Path contains control characters - \(path)" } } } diff --git a/Sources/File System Primitives/File.Path.swift b/Sources/File System Primitives/File.Path.swift index 9245b6f..8e5ea7a 100644 --- a/Sources/File System Primitives/File.Path.swift +++ b/Sources/File System Primitives/File.Path.swift @@ -40,7 +40,7 @@ extension File { // Check for control characters before FilePath conversion // (FilePath may truncate at NUL, so we validate the original string) if string.utf8.contains(where: \.ascii.isControl) { - throw .containsControlCharacters + throw .containsControlCharacters(string) } self._path = FilePath(string)