Add console command to get version information

See: #652
pull/661/head
Jonathan G Rennison 4 months ago
parent 53f86b3aab
commit 58f8971f17

@ -3141,6 +3141,18 @@ DEF_CONSOLE_CMD(ConSpriteCacheStats)
return true;
}
DEF_CONSOLE_CMD(ConDumpVersion)
{
if (argc == 0) {
IConsoleHelp("Dump version info");
}
char buffer[65536];
CrashLog::VersionInfoLog(buffer, lastof(buffer));
PrintLineByLine(buffer);
return true;
}
DEF_CONSOLE_CMD(ConCheckCaches)
{
if (argc == 0) {
@ -3969,6 +3981,7 @@ void IConsoleStdLibRegister()
IConsole::CmdRegister("dump_grf_cargo_tables", ConDumpGrfCargoTables, nullptr, true);
IConsole::CmdRegister("dump_signal_styles", ConDumpSignalStyles, nullptr, true);
IConsole::CmdRegister("dump_sprite_cache_stats", ConSpriteCacheStats, nullptr, true);
IConsole::CmdRegister("dump_version", ConDumpVersion, nullptr, true);
IConsole::CmdRegister("check_caches", ConCheckCaches, nullptr, true);
IConsole::CmdRegister("show_town_window", ConShowTownWindow, nullptr, true);
IConsole::CmdRegister("show_station_window", ConShowStationWindow, nullptr, true);

@ -1136,18 +1136,6 @@ void CrashLog::MakeInconsistencyLog(const InconsistencyExtraInfo &info) const
_save_DBGC_data = false;
}
/**
* Makes a version info log, writes it to a file. It uses DEBUG to write
* information like paths to the console.
* @return true when everything is made successfully.
*/
void CrashLog::MakeVersionInfoLog() const
{
char buffer[65536];
this->FillVersionInfoLog(buffer, lastof(buffer));
printf("%s\n", buffer);
}
/**
* Makes a crash dump and crash savegame. It uses DEBUG to write
* information like paths to the console.

@ -189,7 +189,6 @@ public:
void MakeDesyncCrashLog(const std::string *log_in, std::string *log_out, const DesyncExtraInfo &info) const;
static bool WriteDesyncSavegame(const char *log_data, const char *name_buffer);
void MakeInconsistencyLog(const InconsistencyExtraInfo &info) const;
void MakeVersionInfoLog() const;
void MakeCrashSavegameAndScreenshot();
void SendSurvey() const;
@ -209,7 +208,7 @@ public:
static void DesyncCrashLog(const std::string *log_in, std::string *log_out, const DesyncExtraInfo &info);
static void InconsistencyLog(const InconsistencyExtraInfo &info);
static void VersionInfoLog();
static void VersionInfoLog(char *buffer, const char *last);
static void RegisterCrashed() { CrashLog::have_crashed = true; }
static bool HaveAlreadyCrashed() { return CrashLog::have_crashed; }

@ -899,7 +899,9 @@ int openttd_main(int argc, char *argv[])
case 'x': scanner->save_config = false; break;
case 'J': _quit_after_days = Clamp(atoi(mgo.opt), 0, INT_MAX); break;
case 'Z': {
CrashLog::VersionInfoLog();
char buffer[65536];
CrashLog::VersionInfoLog(buffer, lastof(buffer));
fputs(buffer, stdout);
return ret;
}
case 'X': only_local_path = true; break;

@ -490,8 +490,8 @@ void CDECL HandleCrash(int signum, siginfo_t *si, void *context)
}
/* static */ void CrashLog::VersionInfoLog()
/* static */ void CrashLog::VersionInfoLog(char *buffer, const char *last)
{
CrashLogOSX log(CrashLogOSX::DesyncTag{});
log.MakeVersionInfoLog();
log.FillVersionInfoLog(buffer, last);
}

@ -850,8 +850,8 @@ static void CDECL HandleCrash(int signum)
log.MakeInconsistencyLog(info);
}
/* static */ void CrashLog::VersionInfoLog()
/* static */ void CrashLog::VersionInfoLog(char *buffer, const char *last)
{
CrashLogUnix log(CrashLogUnix::DesyncTag{});
log.MakeVersionInfoLog();
log.FillVersionInfoLog(buffer, last);
}

@ -801,10 +801,10 @@ static void CDECL CustomAbort(int)
log.MakeInconsistencyLog(info);
}
/* static */ void CrashLog::VersionInfoLog()
/* static */ void CrashLog::VersionInfoLog(char *buffer, const char *last)
{
CrashLogWindows log(nullptr);
log.MakeVersionInfoLog();
log.FillVersionInfoLog(buffer, last);
}
/* The crash log GUI */

Loading…
Cancel
Save