From 1115f15e1cba09c60a9a1fe006941c562e91d348 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Wed, 17 Nov 2021 03:18:15 +0900 Subject: [PATCH 1/5] windows: Map `ERROR_INVALID_NAME` as `InvalidInput` --- library/std/src/sys/windows/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/std/src/sys/windows/mod.rs b/library/std/src/sys/windows/mod.rs index c70f254cf39f8..4ec9437700e02 100644 --- a/library/std/src/sys/windows/mod.rs +++ b/library/std/src/sys/windows/mod.rs @@ -71,7 +71,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { c::ERROR_FILE_NOT_FOUND => return NotFound, c::ERROR_PATH_NOT_FOUND => return NotFound, c::ERROR_NO_DATA => return BrokenPipe, - c::ERROR_INVALID_PARAMETER => return InvalidInput, + c::ERROR_INVALID_PARAMETER | c::ERROR_INVALID_NAME => return InvalidInput, c::ERROR_NOT_ENOUGH_MEMORY | c::ERROR_OUTOFMEMORY => return OutOfMemory, c::ERROR_SEM_TIMEOUT | c::WAIT_TIMEOUT From 755e475c8b518e4ad9ba79adead4ea8c8a268c22 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 31 Jan 2022 17:24:10 +0900 Subject: [PATCH 2/5] Rename `FilenameTooLong` to `FilenameInvalid` --- library/std/src/io/error.rs | 4 ++-- library/std/src/sys/unix/mod.rs | 2 +- library/std/src/sys/windows/mod.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/std/src/io/error.rs b/library/std/src/io/error.rs index 4b55324a2424c..c55f3c19ab60f 100644 --- a/library/std/src/io/error.rs +++ b/library/std/src/io/error.rs @@ -301,7 +301,7 @@ pub enum ErrorKind { /// The limit might be from the underlying filesystem or API, or an administratively imposed /// resource limit. #[unstable(feature = "io_error_more", issue = "86442")] - FilenameTooLong, + FilenameInvalid, /// Program argument list too long. /// /// When trying to run an external program, a system or process limit on the size of the @@ -382,7 +382,7 @@ impl ErrorKind { DirectoryNotEmpty => "directory not empty", ExecutableFileBusy => "executable file busy", FileTooLarge => "file too large", - FilenameTooLong => "filename too long", + FilenameInvalid => "filename too long", FilesystemLoop => "filesystem loop or indirection limit (e.g. symlink loop)", FilesystemQuotaExceeded => "filesystem quota exceeded", HostUnreachable => "host unreachable", diff --git a/library/std/src/sys/unix/mod.rs b/library/std/src/sys/unix/mod.rs index 6382354eb6ebd..863b6c7c5a7ba 100644 --- a/library/std/src/sys/unix/mod.rs +++ b/library/std/src/sys/unix/mod.rs @@ -159,7 +159,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { libc::ENOSPC => StorageFull, libc::ENOSYS => Unsupported, libc::EMLINK => TooManyLinks, - libc::ENAMETOOLONG => FilenameTooLong, + libc::ENAMETOOLONG => FilenameInvalid, libc::ENETDOWN => NetworkDown, libc::ENETUNREACH => NetworkUnreachable, libc::ENOTCONN => NotConnected, diff --git a/library/std/src/sys/windows/mod.rs b/library/std/src/sys/windows/mod.rs index 4ec9437700e02..57a25a0f30ab2 100644 --- a/library/std/src/sys/windows/mod.rs +++ b/library/std/src/sys/windows/mod.rs @@ -104,7 +104,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { c::ERROR_POSSIBLE_DEADLOCK => return Deadlock, c::ERROR_NOT_SAME_DEVICE => return CrossesDevices, c::ERROR_TOO_MANY_LINKS => return TooManyLinks, - c::ERROR_FILENAME_EXCED_RANGE => return FilenameTooLong, + c::ERROR_FILENAME_EXCED_RANGE => return FilenameInvalid, _ => {} } From cc9407924decf5212177769ff4740665047517d9 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 31 Jan 2022 17:28:05 +0900 Subject: [PATCH 3/5] Map `ERROR_INVALID_NAME` to `FilenameInvalid` --- library/std/src/sys/windows/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/std/src/sys/windows/mod.rs b/library/std/src/sys/windows/mod.rs index 57a25a0f30ab2..6d97bf42f6f56 100644 --- a/library/std/src/sys/windows/mod.rs +++ b/library/std/src/sys/windows/mod.rs @@ -71,7 +71,8 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { c::ERROR_FILE_NOT_FOUND => return NotFound, c::ERROR_PATH_NOT_FOUND => return NotFound, c::ERROR_NO_DATA => return BrokenPipe, - c::ERROR_INVALID_PARAMETER | c::ERROR_INVALID_NAME => return InvalidInput, + c::ERROR_INVALID_NAME => return FilenameInvalid, + c::ERROR_INVALID_PARAMETER => return InvalidInput, c::ERROR_NOT_ENOUGH_MEMORY | c::ERROR_OUTOFMEMORY => return OutOfMemory, c::ERROR_SEM_TIMEOUT | c::WAIT_TIMEOUT From 861f3c70a27d007ed8113fe776aa393d8e25faa0 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 31 Jan 2022 09:17:34 -0800 Subject: [PATCH 4/5] Fix description of FilenameInvalid Co-authored-by: Mara Bos --- library/std/src/io/error.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/std/src/io/error.rs b/library/std/src/io/error.rs index c55f3c19ab60f..90766d4acefdd 100644 --- a/library/std/src/io/error.rs +++ b/library/std/src/io/error.rs @@ -382,7 +382,7 @@ impl ErrorKind { DirectoryNotEmpty => "directory not empty", ExecutableFileBusy => "executable file busy", FileTooLarge => "file too large", - FilenameInvalid => "filename too long", + FilenameInvalid => "filename invalid", FilesystemLoop => "filesystem loop or indirection limit (e.g. symlink loop)", FilesystemQuotaExceeded => "filesystem quota exceeded", HostUnreachable => "host unreachable", From a898b31662aee14c9aaa46f39377724c7ae590b5 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Thu, 10 Feb 2022 23:49:27 +0900 Subject: [PATCH 5/5] Rename to `InvalidFilename` --- library/std/src/io/error.rs | 9 ++++----- library/std/src/io/error/repr_bitpacked.rs | 2 +- library/std/src/sys/unix/mod.rs | 2 +- library/std/src/sys/windows/mod.rs | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/library/std/src/io/error.rs b/library/std/src/io/error.rs index 90766d4acefdd..1aa6d65788912 100644 --- a/library/std/src/io/error.rs +++ b/library/std/src/io/error.rs @@ -296,12 +296,11 @@ pub enum ErrorKind { /// The filesystem does not support making so many hardlinks to the same file. #[unstable(feature = "io_error_more", issue = "86442")] TooManyLinks, - /// Filename too long. + /// A filename was invalid. /// - /// The limit might be from the underlying filesystem or API, or an administratively imposed - /// resource limit. + /// This error can also cause if it exceeded the filename length limit. #[unstable(feature = "io_error_more", issue = "86442")] - FilenameInvalid, + InvalidFilename, /// Program argument list too long. /// /// When trying to run an external program, a system or process limit on the size of the @@ -382,12 +381,12 @@ impl ErrorKind { DirectoryNotEmpty => "directory not empty", ExecutableFileBusy => "executable file busy", FileTooLarge => "file too large", - FilenameInvalid => "filename invalid", FilesystemLoop => "filesystem loop or indirection limit (e.g. symlink loop)", FilesystemQuotaExceeded => "filesystem quota exceeded", HostUnreachable => "host unreachable", Interrupted => "operation interrupted", InvalidData => "invalid data", + InvalidFilename => "invalid filename", InvalidInput => "invalid input parameter", IsADirectory => "is a directory", NetworkDown => "network down", diff --git a/library/std/src/io/error/repr_bitpacked.rs b/library/std/src/io/error/repr_bitpacked.rs index f317368e8e59d..4301e941b3dce 100644 --- a/library/std/src/io/error/repr_bitpacked.rs +++ b/library/std/src/io/error/repr_bitpacked.rs @@ -315,7 +315,7 @@ fn kind_from_prim(ek: u32) -> Option { Deadlock, CrossesDevices, TooManyLinks, - FilenameTooLong, + InvalidFilename, ArgumentListTooLong, Interrupted, Other, diff --git a/library/std/src/sys/unix/mod.rs b/library/std/src/sys/unix/mod.rs index 863b6c7c5a7ba..605cc499b3c92 100644 --- a/library/std/src/sys/unix/mod.rs +++ b/library/std/src/sys/unix/mod.rs @@ -159,7 +159,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { libc::ENOSPC => StorageFull, libc::ENOSYS => Unsupported, libc::EMLINK => TooManyLinks, - libc::ENAMETOOLONG => FilenameInvalid, + libc::ENAMETOOLONG => InvalidFilename, libc::ENETDOWN => NetworkDown, libc::ENETUNREACH => NetworkUnreachable, libc::ENOTCONN => NotConnected, diff --git a/library/std/src/sys/windows/mod.rs b/library/std/src/sys/windows/mod.rs index 6d97bf42f6f56..dc288176346bc 100644 --- a/library/std/src/sys/windows/mod.rs +++ b/library/std/src/sys/windows/mod.rs @@ -71,7 +71,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { c::ERROR_FILE_NOT_FOUND => return NotFound, c::ERROR_PATH_NOT_FOUND => return NotFound, c::ERROR_NO_DATA => return BrokenPipe, - c::ERROR_INVALID_NAME => return FilenameInvalid, + c::ERROR_INVALID_NAME => return InvalidFilename, c::ERROR_INVALID_PARAMETER => return InvalidInput, c::ERROR_NOT_ENOUGH_MEMORY | c::ERROR_OUTOFMEMORY => return OutOfMemory, c::ERROR_SEM_TIMEOUT @@ -105,7 +105,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { c::ERROR_POSSIBLE_DEADLOCK => return Deadlock, c::ERROR_NOT_SAME_DEVICE => return CrossesDevices, c::ERROR_TOO_MANY_LINKS => return TooManyLinks, - c::ERROR_FILENAME_EXCED_RANGE => return FilenameInvalid, + c::ERROR_FILENAME_EXCED_RANGE => return InvalidFilename, _ => {} }