int try_create_trash_dir(const char trash_dir[]) { LOG_FUNC_ENTER; if(is_dir_writable(trash_dir)) { return 0; } return make_path(trash_dir, 0777); }
/* Performs conversions on files in trash required for partial backward * compatibility. Returns newly allocated string that should be freed by the * caller. */ static char * convert_old_trash_path(const char trash_path[]) { if(!is_path_absolute(trash_path) && is_dir_writable(cfg.trash_dir)) { char *const full_path = format_str("%s/%s", cfg.trash_dir, trash_path); if(path_exists(full_path, DEREF)) { return full_path; } free(full_path); } return strdup(trash_path); }
int create_trash_dir(const char trash_dir[]) { LOG_FUNC_ENTER; if(is_dir_writable(trash_dir)) { return 0; } if(make_dir(trash_dir, 0777) != 0) { show_error_msgf("Error Setting Trash Directory", "Could not set trash directory to %s: %s", trash_dir, strerror(errno)); return 1; } return 0; }