You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #pragma once
-
- #include "misc.h"
-
- namespace cppfs
- {
-
- mode_t file_permissions::to_unix(const file_permissions& p_perm)
- {
- mode_t perm = 0;
-
- if (p_perm.is_set(file_permission::user_read)) perm |= S_IRUSR;
- if (p_perm.is_set(file_permission::user_write)) perm |= S_IWUSR;
- if (p_perm.is_set(file_permission::user_execute)) perm |= S_IXUSR;
-
- if (p_perm.is_set(file_permission::group_read)) perm |= S_IRGRP;
- if (p_perm.is_set(file_permission::group_write)) perm |= S_IWGRP;
- if (p_perm.is_set(file_permission::group_execute)) perm |= S_IXGRP;
-
- if (p_perm.is_set(file_permission::others_read)) perm |= S_IROTH;
- if (p_perm.is_set(file_permission::others_write)) perm |= S_IWOTH;
- if (p_perm.is_set(file_permission::others_execute)) perm |= S_IXOTH;
-
- return perm;
- }
-
- file_permissions file_permissions::from_unix(mode_t p_perm)
- {
- file_permissions perm;
-
- if (p_perm & S_IRUSR) perm.set(file_permission::user_read);
- if (p_perm & S_IWUSR) perm.set(file_permission::user_write);
- if (p_perm & S_IXUSR) perm.set(file_permission::user_execute);
-
- if (p_perm & S_IRGRP) perm.set(file_permission::group_read);
- if (p_perm & S_IWGRP) perm.set(file_permission::group_write);
- if (p_perm & S_IXGRP) perm.set(file_permission::group_execute);
-
- if (p_perm & S_IROTH) perm.set(file_permission::others_read);
- if (p_perm & S_IWOTH) perm.set(file_permission::others_write);
- if (p_perm & S_IXOTH) perm.set(file_permission::others_execute);
-
- return perm;
- }
-
- }
|