summaryrefslogtreecommitdiff
path: root/src/base_media_func.h
diff options
context:
space:
mode:
authorMichael Lutz <michi@icosahedron.de>2020-12-06 21:11:42 +0100
committerMichael Lutz <michi@icosahedron.de>2020-12-27 13:19:25 +0100
commitdd138fc460dcbab37452e90ff070a31516994aa2 (patch)
tree170edd04094e997abe891858a8e4753071983fee /src/base_media_func.h
parent860c270c73048b4930ac8cbebcd60be746eb9782 (diff)
downloadopenttd-dd138fc460dcbab37452e90ff070a31516994aa2.tar.xz
Codechange: Stringify config file paths.
Diffstat (limited to 'src/base_media_func.h')
-rw-r--r--src/base_media_func.h13
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;