]> git.lizzy.rs Git - rust.git/commitdiff
Add ERROR_FILE_EXISTS to ErrorKind conversion on Windows
authorGleb Kozyrev <gleb@gkoz.com>
Tue, 14 Jun 2016 09:04:24 +0000 (12:04 +0300)
committerGleb Kozyrev <gleb@gkoz.com>
Tue, 14 Jun 2016 09:10:42 +0000 (12:10 +0300)
Bug report:
https://users.rust-lang.org/t/detecting-error-kind-for-opening-file/6215
Reference:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx#error_file_exists

src/libstd/sys/windows/c.rs
src/libstd/sys/windows/mod.rs

index 2acf6485eb3dad6bf9252a609020ede0945706fb..ce563dc7b16d3e4fe31c3b6ab343bd82dfc0d484 100644 (file)
@@ -181,6 +181,7 @@ fn clone(&self) -> Self { *self }
 pub const ERROR_INVALID_HANDLE: DWORD = 6;
 pub const ERROR_NO_MORE_FILES: DWORD = 18;
 pub const ERROR_HANDLE_EOF: DWORD = 38;
+pub const ERROR_FILE_EXISTS: DWORD = 80;
 pub const ERROR_BROKEN_PIPE: DWORD = 109;
 pub const ERROR_CALL_NOT_IMPLEMENTED: DWORD = 120;
 pub const ERROR_INSUFFICIENT_BUFFER: DWORD = 122;
index 384940e4dc446edbe0f0101378000b60a431727b..6dd4f4c3e750e8b2df17d3e5941c9f97bce901f7 100644 (file)
@@ -68,6 +68,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind {
     match errno as c::DWORD {
         c::ERROR_ACCESS_DENIED => return ErrorKind::PermissionDenied,
         c::ERROR_ALREADY_EXISTS => return ErrorKind::AlreadyExists,
+        c::ERROR_FILE_EXISTS => return ErrorKind::AlreadyExists,
         c::ERROR_BROKEN_PIPE => return ErrorKind::BrokenPipe,
         c::ERROR_FILE_NOT_FOUND => return ErrorKind::NotFound,
         c::ERROR_PATH_NOT_FOUND => return ErrorKind::NotFound,