mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-28 13:53:10 +00:00
Revert "builtins/path: Use fancy bitflags feature"
This builds on my machine, but doesn't on CI.
Rust 1.67 possibly needs to derive Eq as well as PartialEq?
This reverts commit 2fa0f13db2
.
This commit is contained in:
parent
2fa0f13db2
commit
251ddd1bcc
1 changed files with 15 additions and 3 deletions
|
@ -86,7 +86,7 @@ impl TryFrom<&wstr> for TypeFlags {
|
||||||
}
|
}
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
#[derive(Copy, Clone, Default, PartialEq)]
|
#[derive(Copy, Clone, Default)]
|
||||||
pub struct PermFlags: u32 {
|
pub struct PermFlags: u32 {
|
||||||
const READ = 1 << 0;
|
const READ = 1 << 0;
|
||||||
const WRITE = 1 << 1;
|
const WRITE = 1 << 1;
|
||||||
|
@ -405,6 +405,7 @@ fn path_transform(
|
||||||
if transformed != arg {
|
if transformed != arg {
|
||||||
n_transformed += 1;
|
n_transformed += 1;
|
||||||
// Return okay if path wasn't already in this form
|
// Return okay if path wasn't already in this form
|
||||||
|
// TODO: Is that correct?
|
||||||
if opts.quiet {
|
if opts.quiet {
|
||||||
return STATUS_CMD_OK;
|
return STATUS_CMD_OK;
|
||||||
};
|
};
|
||||||
|
@ -797,15 +798,26 @@ fn filter_path(opts: &Options, path: &wstr, uid: Option<u32>, gid: Option<u32>)
|
||||||
|
|
||||||
if let Some(perm) = opts.perms {
|
if let Some(perm) = opts.perms {
|
||||||
let mut amode = 0;
|
let mut amode = 0;
|
||||||
|
// TODO: Update bitflags so this works
|
||||||
|
/*
|
||||||
for f in perm {
|
for f in perm {
|
||||||
amode |= match f {
|
amode |= match f {
|
||||||
PermFlags::READ => R_OK,
|
PermFlags::READ => R_OK,
|
||||||
PermFlags::WRITE => W_OK,
|
PermFlags::WRITE => W_OK,
|
||||||
PermFlags::EXEC => X_OK,
|
PermFlags::EXEC => X_OK,
|
||||||
_ => 0,
|
_ => PermFlags::empty(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
if perm.contains(PermFlags::READ) {
|
||||||
|
amode |= R_OK;
|
||||||
|
}
|
||||||
|
if perm.contains(PermFlags::WRITE) {
|
||||||
|
amode |= W_OK;
|
||||||
|
}
|
||||||
|
if perm.contains(PermFlags::EXEC) {
|
||||||
|
amode |= X_OK;
|
||||||
|
}
|
||||||
// access returns 0 on success,
|
// access returns 0 on success,
|
||||||
// -1 on failure. Yes, C can't even keep its bools straight.
|
// -1 on failure. Yes, C can't even keep its bools straight.
|
||||||
// Skip this if we don't have a mode to check - the stat can do existence too.
|
// Skip this if we don't have a mode to check - the stat can do existence too.
|
||||||
|
|
Loading…
Reference in a new issue