std::stringstream ss;
ss << _("playrecord-", "playrec-") << savefile_base << ".txt";
const auto &path = path_build(ANGBAND_DIR_USER, ss.str());
- const auto &filename = path.string();
- fd_kill(filename);
+ fd_kill(path);
auto *fff = angband_fopen(path, FileOpenMode::WRITE);
if (fff) {
angband_fclose(fff);
msg_format(_("記録を消去しました。", "deleted record."));
} else {
+ const auto &filename = path.string();
msg_format(_("%s の消去に失敗しました。", "failed to delete %s."), filename.data());
}
safe_setuid_drop();
check_saved_tmp_files(fd, &force);
safe_setuid_grab(player_ptr);
- (void)fd_kill(floor_savefile.data());
+ (void)fd_kill(floor_savefile);
safe_setuid_drop();
sf_ptr->floor_id = 0;
}
}
safe_setuid_grab(player_ptr);
- (void)fd_kill(get_saved_floor_name(i).data());
+ (void)fd_kill(get_saved_floor_name(i));
safe_setuid_drop();
}
}
}
safe_setuid_grab(player_ptr);
- (void)fd_kill(get_saved_floor_name((int)sf_ptr->savefile_id).data());
+ (void)fd_kill(get_saved_floor_name((int)sf_ptr->savefile_id));
safe_setuid_drop();
sf_ptr->floor_id = 0;
}
floor_savefile.append(ext);
safe_setuid_grab(player_ptr);
- loading_savefile = angband_fopen(floor_savefile.data(), FileOpenMode::READ, true);
+ loading_savefile = angband_fopen(floor_savefile, FileOpenMode::READ, true);
safe_setuid_drop();
bool is_save_successful = true;
angband_fclose(loading_savefile);
safe_setuid_grab(player_ptr);
if (!(mode & SLF_NO_KILL)) {
- (void)fd_kill(floor_savefile.data());
+ (void)fd_kill(floor_savefile);
}
safe_setuid_drop();
strnfmt(ext, sizeof(ext), ".F%02d", (int)sf_ptr->savefile_id);
floor_savefile.append(ext);
safe_setuid_grab(player_ptr);
- fd_kill(floor_savefile.data());
+ fd_kill(floor_savefile);
safe_setuid_drop();
saving_savefile = nullptr;
safe_setuid_grab(player_ptr);
if (fd >= 0) {
(void)fd_close(fd);
safe_setuid_grab(player_ptr);
- saving_savefile = angband_fopen(floor_savefile.data(), FileOpenMode::WRITE, true);
+ saving_savefile = angband_fopen(floor_savefile, FileOpenMode::WRITE, true);
safe_setuid_drop();
if (saving_savefile) {
if (save_floor_aux(player_ptr, sf_ptr)) {
if (!is_save_successful) {
safe_setuid_grab(player_ptr);
- (void)fd_kill(floor_savefile.data());
+ (void)fd_kill(floor_savefile);
safe_setuid_drop();
}
}
* @brief OSごとの差異を吸収してファイルを削除する
* @param file ファイルの相対パスまたは絶対パス
*/
-void fd_kill(std::string_view file)
+void fd_kill(const std::filesystem::path &path)
{
- const auto &path = path_parse(file);
- if (!std::filesystem::exists(path)) {
+ const auto &parsed_path = path_parse(path);
+ if (!std::filesystem::exists(parsed_path)) {
return;
}
- std::filesystem::remove(path);
+ std::filesystem::remove(parsed_path);
}
/*!
errr angband_fgets(FILE *fff, char *buf, ulong n);
errr angband_fputs(FILE *fff, concptr buf, ulong n);
errr angband_fclose(FILE *fff);
-void fd_kill(std::string_view file);
+void fd_kill(const std::filesystem::path &path);
void fd_move(std::string_view from, std::string_view to);
int fd_make(const std::filesystem::path &path, bool can_write_group = false);
int fd_open(std::string_view file, int mode);