527 // TODO: convert through raw flag bits instead? |
529 // TODO: convert through raw flag bits instead? |
528 let mut flags = Flags::empty(); |
530 let mut flags = Flags::empty(); |
529 flags.set(Flags::WDIR_TRACKED, wc_tracked); |
531 flags.set(Flags::WDIR_TRACKED, wc_tracked); |
530 flags.set(Flags::P1_TRACKED, p1_tracked); |
532 flags.set(Flags::P1_TRACKED, p1_tracked); |
531 flags.set(Flags::P2_INFO, p2_info); |
533 flags.set(Flags::P2_INFO, p2_info); |
|
534 // Some platforms' libc don't have the same type (MacOS uses i32 here) |
|
535 #[allow(clippy::unnecessary_cast)] |
532 let size = if let Some((m, s)) = mode_size_opt { |
536 let size = if let Some((m, s)) = mode_size_opt { |
533 let exec_perm = m & (libc::S_IXUSR as u32) != 0; |
537 let exec_perm = m & (libc::S_IXUSR as u32) != 0; |
534 let is_symlink = m & (libc::S_IFMT as u32) == libc::S_IFLNK as u32; |
538 let is_symlink = m & (libc::S_IFMT as u32) == libc::S_IFLNK as u32; |
535 flags.set(Flags::MODE_EXEC_PERM, exec_perm); |
539 flags.set(Flags::MODE_EXEC_PERM, exec_perm); |
536 flags.set(Flags::MODE_IS_SYMLINK, is_symlink); |
540 flags.set(Flags::MODE_IS_SYMLINK, is_symlink); |