From cafc2f8eed536c1914405e1211a9bd454fcec372 Mon Sep 17 00:00:00 2001 From: elfmz Date: Sun, 10 Jul 2022 20:18:55 +0300 Subject: add SUID/SGID/Sticky bits to attrs; fix build --- far2l/src/mix/FSFileFlags.cpp | 18 +++++++++--------- far2l/src/mix/FSFileFlags.h | 20 ++++++++++++-------- 2 files changed, 21 insertions(+), 17 deletions(-) (limited to 'far2l/src/mix') diff --git a/far2l/src/mix/FSFileFlags.cpp b/far2l/src/mix/FSFileFlags.cpp index 5c999d04..07114caf 100644 --- a/far2l/src/mix/FSFileFlags.cpp +++ b/far2l/src/mix/FSFileFlags.cpp @@ -52,23 +52,23 @@ void FSFileFlags::SetImmutable(bool v) } } -#if defined(__APPLE__) || defined(__FreeBSD__) - -bool FSFileFlags::Undeletable() const +bool FSFileFlags::Append() const { - return FS_FLAGS_CONTAIN_UNDELETABLE(_flags); + return FS_FLAGS_CONTAIN_APPEND(_flags); } -void FSFileFlags::SetUndeletable(bool v) +void FSFileFlags::SetAppend(bool v) { - if (v && !FS_FLAGS_CONTAIN_UNDELETABLE(_flags)) { - _flags = FS_FLAGS_WITH_UNDELETABLE(_flags); + if (v && !FS_FLAGS_CONTAIN_APPEND(_flags)) { + _flags = FS_FLAGS_WITH_APPEND(_flags); - } else if (!v && FS_FLAGS_CONTAIN_UNDELETABLE(_flags)) { - _flags = FS_FLAGS_WITHOUT_UNDELETABLE(_flags); + } else if (!v && FS_FLAGS_CONTAIN_APPEND(_flags)) { + _flags = FS_FLAGS_WITHOUT_APPEND(_flags); } } +#if defined(__APPLE__) || defined(__FreeBSD__) + bool FSFileFlags::Hidden() const { return FS_FLAGS_CONTAIN_HIDDEN(_flags); diff --git a/far2l/src/mix/FSFileFlags.h b/far2l/src/mix/FSFileFlags.h index dcc173c8..701ee651 100644 --- a/far2l/src/mix/FSFileFlags.h +++ b/far2l/src/mix/FSFileFlags.h @@ -18,10 +18,10 @@ public: bool Immutable() const; void SetImmutable(bool v); -#if defined(__APPLE__) || defined(__FreeBSD__) - bool Undeletable() const; - void SetUndeletable(bool v); + bool Append() const; + void SetAppend(bool v); +#if defined(__APPLE__) || defined(__FreeBSD__) bool Hidden() const; void SetHidden(bool v); #endif @@ -32,12 +32,12 @@ public: # define FS_FLAGS_WITHOUT_IMMUTABLE(flags) ((flags) & (~(UF_IMMUTABLE | SF_IMMUTABLE))) # define FS_FLAGS_WITH_IMMUTABLE(flags) ((flags) | (UF_IMMUTABLE)) -# define FS_FLAGS_CONTAIN_UNDELETABLE(flags) (((flags) & (UF_NOUNLINK | SF_NOUNLINK)) != 0) -# define FS_FLAGS_WITHOUT_UNDELETABLE(flags) ((flags) & (~(UF_NOUNLINK | SF_NOUNLINK))) -# define FS_FLAGS_WITH_UNDELETABLE(flags) ((flags) | (UF_NOUNLINK)) +# define FS_FLAGS_CONTAIN_APPEND(flags) (((flags) & (UF_APPEND | SF_APPEND)) != 0) +# define FS_FLAGS_WITHOUT_APPEND(flags) ((flags) & (~(UF_APPEND | SF_APPEND))) +# define FS_FLAGS_WITH_APPEND(flags) ((flags) | (UF_APPEND)) -# define FS_FLAGS_CONTAIN_HIDDEN(flags) (((flags) & (UF_HIDDEN | SF_HIDDEN)) != 0) -# define FS_FLAGS_WITHOUT_HIDDEN(flags) ((flags) & (~(UF_HIDDEN | SF_HIDDEN))) +# define FS_FLAGS_CONTAIN_HIDDEN(flags) (((flags) & (UF_HIDDEN)) != 0) +# define FS_FLAGS_WITHOUT_HIDDEN(flags) ((flags) & (~(UF_HIDDEN))) # define FS_FLAGS_WITH_HIDDEN(flags) ((flags) | (UF_HIDDEN)) #else @@ -45,4 +45,8 @@ public: # define FS_FLAGS_WITHOUT_IMMUTABLE(flags) ((flags) & (~FS_IMMUTABLE_FL)) # define FS_FLAGS_WITH_IMMUTABLE(flags) ((flags) | FS_IMMUTABLE_FL) +# define FS_FLAGS_CONTAIN_APPEND(flags) (((flags) & FS_APPEND_FL) != 0) +# define FS_FLAGS_WITHOUT_APPEND(flags) ((flags) & (~FS_APPEND_FL)) +# define FS_FLAGS_WITH_APPEND(flags) ((flags) | (FS_APPEND_FL)) + #endif -- cgit v1.2.3