diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 7c478e10cb..0f054d21e3 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -246,7 +246,7 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const BlitterFactory::GetCurrentBlitter() == nullptr ? "none" : BlitterFactory::GetCurrentBlitter()->GetName(), BaseGraphics::GetUsedSet() == nullptr ? "none" : BaseGraphics::GetUsedSet()->name.c_str(), BaseGraphics::GetUsedSet() == nullptr ? UINT32_MAX : BaseGraphics::GetUsedSet()->version, - _current_language == nullptr ? "none" : _current_language->file, + _current_language == nullptr ? "none" : _current_language->file.c_str(), MusicDriver::GetInstance() == nullptr ? "none" : MusicDriver::GetInstance()->GetName(), BaseMusic::GetUsedSet() == nullptr ? "none" : BaseMusic::GetUsedSet()->name.c_str(), BaseMusic::GetUsedSet() == nullptr ? UINT32_MAX : BaseMusic::GetUsedSet()->version, diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp index 5f44ff3ea0..9bd9003d73 100644 --- a/src/game/game_text.cpp +++ b/src/game/game_text.cpp @@ -403,7 +403,7 @@ void ReconsiderGameScriptLanguage() if (_current_data == nullptr) return; char temp[MAX_PATH]; - strecpy(temp, _current_language->file, lastof(temp)); + strecpy(temp, _current_language->file.c_str(), lastof(temp)); /* Remove the extension */ char *l = strrchr(temp, '.'); diff --git a/src/language.h b/src/language.h index 7e1ed3bc47..a75fd375f6 100644 --- a/src/language.h +++ b/src/language.h @@ -91,7 +91,7 @@ static_assert(sizeof(LanguagePackHeader) % 4 == 0); /** Metadata about a single language. */ struct LanguageMetadata : public LanguagePackHeader { - char file[MAX_PATH]; ///< Name of the file we read this data from. + std::string file; ///< Name of the file we read this data from. }; /** Type for the list of language meta data. */ diff --git a/src/strings.cpp b/src/strings.cpp index 2b396a016b..a0a1ff6e0b 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -2404,13 +2404,14 @@ static void GetLanguageList(const char *path) if (extension == nullptr || strcmp(extension, ".lng") != 0) continue; LanguageMetadata lmd; - seprintf(lmd.file, lastof(lmd.file), "%s%s", path, d_name.c_str()); + lmd.file = path; + lmd.file += d_name; /* Check whether the file is of the correct version */ - if (!GetLanguageFileHeader(lmd.file, &lmd)) { - DEBUG(misc, 3, "%s is not a valid language file", lmd.file); + if (!GetLanguageFileHeader(lmd.file.c_str(), &lmd)) { + DEBUG(misc, 3, "%s is not a valid language file", lmd.file.c_str()); } else if (GetLanguage(lmd.newgrflangid) != nullptr) { - DEBUG(misc, 3, "%s's language ID is already known", lmd.file); + DEBUG(misc, 3, "%s's language ID is already known", lmd.file.c_str()); } else { _languages.push_back(lmd); }