static void set_file_perms(const int perms[13]) { FILE *f; int origin_perms[13] = { 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0 }; int adv_perms[3] = { 0, 0, 0 }; assert_non_null(f = fopen(SANDBOX_PATH "/file", "w")); fclose(f); assert_success(chmod(SANDBOX_PATH "/file", 0777)); if(get_perms(SANDBOX_PATH "/file") != 0777) { assert_success(unlink(SANDBOX_PATH "/file")); return; } strcpy(lwin.curr_dir, SANDBOX_PATH); alloc_file_list(&lwin, "file"); set_perm_string(&lwin, perms, origin_perms, adv_perms); free_file_list(&lwin); assert_int_equal(perms_to_mode(perms), get_perms(SANDBOX_PATH "/file")); assert_success(unlink(SANDBOX_PATH "/file")); }
TEST(reset_executable_bits_from_files_only, IF(not_osx)) { FILE *f; int perms[13] = { 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1 }; int adv_perms[3] = { 1, 1, 1 }; int origin_perms[13] = { 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1 }; assert_success(os_mkdir(SANDBOX_PATH "/dir", 0777)); assert_non_null(f = fopen(SANDBOX_PATH "/dir/file", "w")); fclose(f); assert_success(chmod(SANDBOX_PATH "/dir/file", 0777)); if(get_perms(SANDBOX_PATH "/dir") != 0777 || get_perms(SANDBOX_PATH "/dir/file") != 0777) { assert_success(unlink(SANDBOX_PATH "/dir/file")); assert_success(rmdir(SANDBOX_PATH "/dir")); return; } strcpy(lwin.curr_dir, SANDBOX_PATH); alloc_file_list(&lwin, "dir"); set_perm_string(&lwin, perms, origin_perms, adv_perms); free_file_list(&lwin); assert_int_equal(perms_to_mode(perms), get_perms(SANDBOX_PATH "/dir/file")); assert_int_equal(0777, get_perms(SANDBOX_PATH "/dir")); assert_success(unlink(SANDBOX_PATH "/dir/file")); assert_success(rmdir(SANDBOX_PATH "/dir")); }
static void cmd_ctrl_m(key_info_t key_info, keys_info_t *keys_info) { char path[PATH_MAX]; if(!changed) return; snprintf(path, sizeof(path), "%s/%s", view->curr_dir, view->dir_entry[view->list_pos].name); set_perm_string(view, perms, origin_perms); leave_attr_mode(); }
static void cmd_return(key_info_t key_info, keys_info_t *keys_info) { char path[PATH_MAX]; if(!changed) { return; } get_current_full_path(view, sizeof(path), path); set_perm_string(view, perms, origin_perms); leave_attr_mode(); }