diff --git a/src/display.rs b/src/display.rs index 8629326..ea90330 100644 --- a/src/display.rs +++ b/src/display.rs @@ -282,7 +282,7 @@ fn get_visible_width(input: &str) -> usize { if input.starts_with("\u{1b}[") { let m_pos = input.find('m'); if let Some(len) = m_pos { - nb_invisible_char = len + 3 // 1 (index -> length) + 2 ( compensate for color reset chars ) + nb_invisible_char = len + 3 // 1 (index -> length) + 2 ( compensate for color reset chars ) } } diff --git a/src/meta/date.rs b/src/meta/date.rs index f82ff6d..663a06c 100644 --- a/src/meta/date.rs +++ b/src/meta/date.rs @@ -61,10 +61,10 @@ mod test { use crate::color::{Colors, Theme}; use crate::flags::{DateFlag, Flags}; use ansi_term::Colour; - use std::{env, fs}; - use std::process::{Command, ExitStatus}; - use std::path::Path; use std::io; + use std::path::Path; + use std::process::{Command, ExitStatus}; + use std::{env, fs}; use time; #[cfg(unix)] diff --git a/src/meta/filetype.rs b/src/meta/filetype.rs index c3f9feb..d3b3b23 100644 --- a/src/meta/filetype.rs +++ b/src/meta/filetype.rs @@ -90,9 +90,9 @@ impl FileType { mod test { use super::FileType; use crate::color::{Colors, Theme}; + use crate::meta::Meta; #[cfg(unix)] use crate::meta::Permissions; - use crate::meta::Meta; use ansi_term::Colour; #[cfg(unix)] use std::fs::File; @@ -123,7 +123,8 @@ mod test { #[test] fn test_dir_type() { let tmp_dir = TempDir::new("test_dir_type").expect("failed to create temp dir"); - let meta = Meta::from_path(&tmp_dir.path().to_path_buf()).expect("failed to get tempdir path"); + let meta = + Meta::from_path(&tmp_dir.path().to_path_buf()).expect("failed to get tempdir path"); let metadata = tmp_dir.path().metadata().expect("failed to get metas"); let colors = Colors::new(Theme::NoLscolors); diff --git a/src/meta/name.rs b/src/meta/name.rs index 769a67a..6a9659f 100644 --- a/src/meta/name.rs +++ b/src/meta/name.rs @@ -6,7 +6,7 @@ use std::path::Path; #[derive(Debug, Eq)] pub struct Name { - pub name: String, + pub name: String, path: String, extension: Option, file_type: FileType, @@ -95,8 +95,8 @@ mod test { use super::Name; use crate::color::{self, Colors}; use crate::icon::{self, Icons}; - use crate::meta::Meta; use crate::meta::FileType; + use crate::meta::Meta; #[cfg(unix)] use crate::meta::Permissions; use ansi_term::Colour; diff --git a/src/meta/owner.rs b/src/meta/owner.rs index 0cfba7d..1de8aca 100644 --- a/src/meta/owner.rs +++ b/src/meta/owner.rs @@ -11,10 +11,7 @@ pub struct Owner { impl Owner { #[cfg_attr(unix, allow(dead_code))] pub fn new(user: String, group: String) -> Self { - Self { - user, - group, - } + Self { user, group } } } diff --git a/src/meta/windows_utils.rs b/src/meta/windows_utils.rs index 8c436d6..3912868 100644 --- a/src/meta/windows_utils.rs +++ b/src/meta/windows_utils.rs @@ -1,19 +1,18 @@ -use std::io; -use std::path::PathBuf; use std::ffi::{OsStr, OsString}; +use std::io; +use std::os::windows::ffi::{OsStrExt, OsStringExt}; +use std::path::PathBuf; use std::ptr::null_mut; -use std::os::windows::ffi::{OsStringExt, OsStrExt}; -use winapi::um::winnt; -use winapi::um::accctrl::TRUSTEE_W; -use winapi::shared::winerror; use winapi::ctypes::c_void; +use winapi::shared::winerror; +use winapi::um::accctrl::TRUSTEE_W; +use winapi::um::winnt; use super::{Owner, Permissions}; const BUF_SIZE: u32 = 256; - pub fn get_file_data(path: &PathBuf) -> Result<(Owner, Permissions), io::Error> { // Overall design: // This function allocates some data with GetNamedSecurityInfoW, @@ -54,12 +53,12 @@ pub fn get_file_data(path: &PathBuf) -> Result<(Owner, Permissions), io::Error> &mut group_sid_ptr, &mut dacl_ptr, null_mut(), - &mut sd_ptr + &mut sd_ptr, ) }; if error_code != winerror::ERROR_SUCCESS { - return Err(std::io::Error::from_raw_os_error(error_code as i32)) + return Err(std::io::Error::from_raw_os_error(error_code as i32)); } // Assumptions: @@ -106,17 +105,21 @@ pub fn get_file_data(path: &PathBuf) -> Result<(Owner, Permissions), io::Error> winnt::WinWorldSid, null_mut(), world_sid.as_mut_ptr() as *mut _, - &mut world_sid_len) + &mut world_sid_len, + ) }; if result == 0 { // Failed to create the SID // Assumptions: Same as the other identical calls - unsafe { winapi::um::winbase::LocalFree(sd_ptr); } + unsafe { + winapi::um::winbase::LocalFree(sd_ptr); + } // Assumptions: None (GetLastError shouldn't ever fail) - return Err(io::Error::from_raw_os_error( - unsafe { winapi::um::errhandlingapi::GetLastError() } as i32)); + return Err(io::Error::from_raw_os_error(unsafe { + winapi::um::errhandlingapi::GetLastError() + } as i32)); } // Assumptions: @@ -129,17 +132,11 @@ pub fn get_file_data(path: &PathBuf) -> Result<(Owner, Permissions), io::Error> // Assumptions: // - xxxxx_trustee are still valid (including underlying SID) // - dacl_ptr is still valid - let owner_access_mask = unsafe { - get_acl_access_mask(dacl_ptr as *mut _, &mut owner_trustee) - }?; + let owner_access_mask = unsafe { get_acl_access_mask(dacl_ptr as *mut _, &mut owner_trustee) }?; - let group_access_mask = unsafe { - get_acl_access_mask(dacl_ptr as *mut _, &mut group_trustee) - }?; + let group_access_mask = unsafe { get_acl_access_mask(dacl_ptr as *mut _, &mut group_trustee) }?; - let world_access_mask = unsafe { - get_acl_access_mask(dacl_ptr as *mut _, &mut world_trustee) - }?; + let world_access_mask = unsafe { get_acl_access_mask(dacl_ptr as *mut _, &mut world_trustee) }?; let has_bit = |field: u32, bit: u32| field & bit != 0; @@ -167,7 +164,9 @@ pub fn get_file_data(path: &PathBuf) -> Result<(Owner, Permissions), io::Error> // - The free succeeds (currently unchecked -- there's no real recovery // options. It's not much memory, so leaking it on failure is // *probably* fine) - unsafe { winapi::um::winbase::LocalFree(sd_ptr); } + unsafe { + winapi::um::winbase::LocalFree(sd_ptr); + } Ok((owner, permissions)) } @@ -178,7 +177,10 @@ pub fn get_file_data(path: &PathBuf) -> Result<(Owner, Permissions), io::Error> /// - acl_ptr points to a valid ACL data structure /// - trustee_ptr points to a valid trustee data structure /// - Both remain valid through the function call (no long-term requirement) -unsafe fn get_acl_access_mask(acl_ptr: *mut c_void, trustee_ptr: *mut TRUSTEE_W) -> Result { +unsafe fn get_acl_access_mask( + acl_ptr: *mut c_void, + trustee_ptr: *mut TRUSTEE_W, +) -> Result { let mut access_mask = 0; // Assumptions: @@ -187,7 +189,8 @@ unsafe fn get_acl_access_mask(acl_ptr: *mut c_void, trustee_ptr: *mut TRUSTEE_W) let err_code = winapi::um::aclapi::GetEffectiveRightsFromAclW( acl_ptr as *mut _, trustee_ptr, - &mut access_mask); + &mut access_mask, + ); if err_code == winerror::ERROR_SUCCESS { Ok(access_mask) @@ -254,7 +257,9 @@ unsafe fn lookup_account_sid(sid: *mut c_void) -> Result<(Vec, Vec), s } else { // Some other failure // Assumptions: None (GetLastError shouldn't ever fail) - return Err(io::Error::from_raw_os_error(winapi::um::errhandlingapi::GetLastError() as i32)); + return Err(io::Error::from_raw_os_error( + winapi::um::errhandlingapi::GetLastError() as i32, + )); } } } @@ -312,7 +317,9 @@ mod test { for msb in 0..=256u16 { let val = msb << 8 | lsb; - if val != 0 { vec.push(val) } + if val != 0 { + vec.push(val) + } } vec.push(0);