From e68c15ef48731047d6805681eba9da19cb5eb8d6 Mon Sep 17 00:00:00 2001 From: DariaT <119245219+daria-tanasie@users.noreply.github.com> Date: Wed, 27 Dec 2023 16:39:24 +0000 Subject: [PATCH 1/6] no_more_crash --- src/uu/sync/src/sync.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index c0b8f3d00b5..edaea9aabcd 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -71,7 +71,7 @@ mod platform { use std::fs::OpenOptions; use std::os::windows::prelude::*; use std::path::Path; - use uucore::crash; + use uucore::show; use uucore::wide::{FromWide, ToWide}; use windows_sys::Win32::Foundation::{ GetLastError, ERROR_NO_MORE_FILES, HANDLE, INVALID_HANDLE_VALUE, MAX_PATH, @@ -88,13 +88,16 @@ mod platform { match OpenOptions::new().write(true).open(sliced_name) { Ok(file) => { if FlushFileBuffers(file.as_raw_handle() as HANDLE) == 0 { - crash!(GetLastError() as i32, "failed to flush file buffer"); + show!(USimpleError::new( + GetLastError() as i32, + "failed to flush file buffer" + )); } } - Err(e) => crash!( - e.raw_os_error().unwrap_or(1), - "failed to create volume handle" - ), + Err(e) => show!(USimpleError::new( + e.raw_os_error().unwrap_or(1), + "failed to create volume handle" + )), } } } @@ -103,7 +106,7 @@ mod platform { let mut name: [u16; MAX_PATH as usize] = [0; MAX_PATH as usize]; let handle = FindFirstVolumeW(name.as_mut_ptr(), name.len() as u32); if handle == INVALID_HANDLE_VALUE { - crash!(GetLastError() as i32, "failed to find first volume"); + show!(USimpleError::new(GetLastError() as i32, "failed to find first volume")); } (String::from_wide_null(&name), handle) } @@ -119,7 +122,7 @@ mod platform { FindVolumeClose(next_volume_handle); return volumes; } - err => crash!(err as i32, "failed to find next volume"), + err => show!(err as i32, "failed to find next volume"), } } else { volumes.push(String::from_wide_null(&name)); From b3bda3e871015fffd4b5c5a584ba0147fe85281b Mon Sep 17 00:00:00 2001 From: DariaT <119245219+daria-tanasie@users.noreply.github.com> Date: Wed, 27 Dec 2023 17:30:25 +0000 Subject: [PATCH 2/6] remove_crash --- src/uu/sync/src/sync.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index edaea9aabcd..9984bdd0ca2 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -122,7 +122,7 @@ mod platform { FindVolumeClose(next_volume_handle); return volumes; } - err => show!(err as i32, "failed to find next volume"), + err => show!(USimpleError::new(err as i32, "failed to find next volume")), } } else { volumes.push(String::from_wide_null(&name)); From 70310dd1d5fac8c7855088f11d30dd9fe022d5e7 Mon Sep 17 00:00:00 2001 From: DariaT <119245219+daria-tanasie@users.noreply.github.com> Date: Mon, 15 Jan 2024 21:01:13 +0000 Subject: [PATCH 3/6] cargo_fmt_run --- src/uu/sync/src/sync.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index 9984bdd0ca2..fa0362c2657 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -95,9 +95,9 @@ mod platform { } } Err(e) => show!(USimpleError::new( - e.raw_os_error().unwrap_or(1), - "failed to create volume handle" - )), + e.raw_os_error().unwrap_or(1), + "failed to create volume handle" + )), } } } @@ -106,7 +106,10 @@ mod platform { let mut name: [u16; MAX_PATH as usize] = [0; MAX_PATH as usize]; let handle = FindFirstVolumeW(name.as_mut_ptr(), name.len() as u32); if handle == INVALID_HANDLE_VALUE { - show!(USimpleError::new(GetLastError() as i32, "failed to find first volume")); + show!(USimpleError::new( + GetLastError() as i32, + "failed to find first volume" + )); } (String::from_wide_null(&name), handle) } From b87558b1b1a1e50a7a8dda7fb7e145b628453c43 Mon Sep 17 00:00:00 2001 From: DariaT <119245219+daria-tanasie@users.noreply.github.com> Date: Tue, 16 Jan 2024 20:51:32 +0000 Subject: [PATCH 4/6] added_use_statement_for_Windows --- src/uu/sync/src/sync.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index fa0362c2657..795a2b4ae9e 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -72,6 +72,7 @@ mod platform { use std::os::windows::prelude::*; use std::path::Path; use uucore::show; + use uucore::error::{UResult, USimpleError}; use uucore::wide::{FromWide, ToWide}; use windows_sys::Win32::Foundation::{ GetLastError, ERROR_NO_MORE_FILES, HANDLE, INVALID_HANDLE_VALUE, MAX_PATH, From c1d1cab19a961567928adb8d570eeaeef24ba2a5 Mon Sep 17 00:00:00 2001 From: DariaT <119245219+daria-tanasie@users.noreply.github.com> Date: Thu, 18 Jan 2024 12:49:47 +0000 Subject: [PATCH 5/6] Error propagation --- src/uu/sync/src/sync.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index 795a2b4ae9e..5c1a2dd9ca8 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -103,7 +103,7 @@ mod platform { } } - unsafe fn find_first_volume() -> (String, HANDLE) { + unsafe fn find_first_volume() -> UResult<(String, HANDLE)> { let mut name: [u16; MAX_PATH as usize] = [0; MAX_PATH as usize]; let handle = FindFirstVolumeW(name.as_mut_ptr(), name.len() as u32); if handle == INVALID_HANDLE_VALUE { @@ -111,8 +111,9 @@ mod platform { GetLastError() as i32, "failed to find first volume" )); + Err(String::from("INVALID_HANDLE")) } - (String::from_wide_null(&name), handle) + Ok(String::from_wide_null(&name), handle) } unsafe fn find_all_volumes() -> Vec { From c2f49124815273034a083c4ff456f254e912e13b Mon Sep 17 00:00:00 2001 From: DariaT <119245219+daria-tanasie@users.noreply.github.com> Date: Thu, 18 Jan 2024 12:52:59 +0000 Subject: [PATCH 6/6] error propagation --- src/uu/sync/src/sync.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index 5c1a2dd9ca8..71c527b7e77 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -71,8 +71,8 @@ mod platform { use std::fs::OpenOptions; use std::os::windows::prelude::*; use std::path::Path; - use uucore::show; use uucore::error::{UResult, USimpleError}; + use uucore::show; use uucore::wide::{FromWide, ToWide}; use windows_sys::Win32::Foundation::{ GetLastError, ERROR_NO_MORE_FILES, HANDLE, INVALID_HANDLE_VALUE, MAX_PATH,