diff --git a/src/mode.rs b/src/mode.rs index a34a995c3..a3549a818 100644 --- a/src/mode.rs +++ b/src/mode.rs @@ -32,12 +32,12 @@ pub fn format_mode(mode: u32) -> String { fn get_mode_unix(mode: u32) -> String { let mut s = String::new(); - if mode_is_block_device(mode) { + if mode_is_link(mode) { + s.push('l') + } else if mode_is_block_device(mode) { s.push('b') } else if mode_is_char_device(mode) { s.push('c') - } else if mode_is_link(mode) { - s.push('l') } else if mode_is_socket(mode) { s.push('s') } else if mode_is_pipe(mode) { @@ -279,7 +279,7 @@ pub fn suid_bit_set(meta: &Metadata) -> bool { } pub fn mode_suid(mode: u32) -> bool { - mode & S_IFMT & S_ISUID == S_IFMT & S_ISUID + mode & S_ISUID == S_ISUID } pub fn sgid_bit_set(meta: &Metadata) -> bool { @@ -290,12 +290,12 @@ pub fn sgid_bit_set(meta: &Metadata) -> bool { } pub fn mode_sgid(mode: u32) -> bool { - mode & S_IFMT & S_ISGID == S_IFMT & S_ISGID + mode & S_ISGID == S_ISGID } #[cfg(unix)] pub fn mode_sticky(mode: u32) -> bool { - mode & S_IFMT & S_ISVTX == S_IFMT & S_ISVTX + mode & S_ISVTX == S_ISVTX } pub fn is_pipe(meta: &Metadata) -> bool { @@ -306,7 +306,7 @@ pub fn is_pipe(meta: &Metadata) -> bool { } pub fn mode_is_pipe(mode: u32) -> bool { - mode & S_IFMT & S_IFIFO == S_IFMT & S_IFIFO + mode & S_IFIFO == S_IFIFO } pub fn is_char_device(meta: &Metadata) -> bool { @@ -317,7 +317,7 @@ pub fn is_char_device(meta: &Metadata) -> bool { } pub fn mode_is_char_device(mode: u32) -> bool { - mode & S_IFMT & S_IFCHR == S_IFMT & S_IFCHR + mode & S_IFCHR == S_IFCHR } pub fn is_block_device(meta: &Metadata) -> bool { @@ -328,17 +328,17 @@ pub fn is_block_device(meta: &Metadata) -> bool { } pub fn mode_is_block_device(mode: u32) -> bool { - mode & S_IFMT & S_IFBLK == S_IFMT & S_IFBLK + mode & S_IFBLK == S_IFBLK } #[cfg(unix)] pub fn mode_is_directory(mode: u32) -> bool { - mode & S_IFMT & S_IFDIR == S_IFMT & S_IFDIR + mode & S_IFDIR == S_IFDIR } #[cfg(unix)] pub fn mode_is_link(mode: u32) -> bool { - mode & S_IFMT & S_IFLNK == S_IFMT & S_IFLNK + mode & S_IFLNK == S_IFLNK } pub fn is_socket(meta: &Metadata) -> bool { @@ -349,7 +349,7 @@ pub fn is_socket(meta: &Metadata) -> bool { } pub fn mode_is_socket(mode: u32) -> bool { - mode & S_IFMT & S_IFSOCK == S_IFMT & S_IFSOCK + mode & S_IFSOCK == S_IFSOCK } const S_IRUSR: u32 = 0o400; @@ -369,7 +369,6 @@ const S_ISGID: u32 = 0o2000; #[cfg(unix)] const S_ISVTX: u32 = 0o1000; -const S_IFMT: u32 = 0o170000; const S_IFBLK: u32 = 0o60000; #[cfg(unix)] const S_IFDIR: u32 = 0o40000;