diff options
author | Michael Lutz <michi@icosahedron.de> | 2020-12-06 21:11:42 +0100 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2020-12-27 13:19:25 +0100 |
commit | dd138fc460dcbab37452e90ff070a31516994aa2 (patch) | |
tree | 170edd04094e997abe891858a8e4753071983fee /src/base_media_func.h | |
parent | 860c270c73048b4930ac8cbebcd60be746eb9782 (diff) | |
download | openttd-dd138fc460dcbab37452e90ff070a31516994aa2.tar.xz |
Codechange: Stringify config file paths.
Diffstat (limited to 'src/base_media_func.h')
-rw-r--r-- | src/base_media_func.h | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/base_media_func.h b/src/base_media_func.h index c5e2a6da2..703165db5 100644 --- a/src/base_media_func.h +++ b/src/base_media_func.h @@ -157,17 +157,17 @@ bool BaseMedia<Tbase_set>::AddFile(const char *filename, size_t basepath_length, Tbase_set *set = new Tbase_set(); IniFile *ini = new IniFile(); - char *path = stredup(filename + basepath_length); + std::string path{ filename + basepath_length }; ini->LoadFromDisk(path, BASESET_DIR); - char *psep = strrchr(path, PATHSEPCHAR); - if (psep != nullptr) { - psep[1] = '\0'; + auto psep = path.rfind(PATHSEPCHAR); + if (psep != std::string::npos) { + path.erase(psep + 1); } else { - *path = '\0'; + path.clear(); } - if (set->FillSetDetails(ini, path, filename)) { + if (set->FillSetDetails(ini, path.c_str(), filename)) { Tbase_set *duplicate = nullptr; for (Tbase_set *c = BaseMedia<Tbase_set>::available_sets; c != nullptr; c = c->next) { if (c->name == set->name || c->shortname == set->shortname) { @@ -214,7 +214,6 @@ bool BaseMedia<Tbase_set>::AddFile(const char *filename, size_t basepath_length, } else { delete set; } - free(path); delete ini; return ret; |