Mercurial > hg > openttd
changeset 9893:b902c0851258 draft
(svn r14041) -Feature(tte): make it possible to filter list_patches output like it's done for other list_* console commands
author | glx <glx@openttd.org> |
---|---|
date | Mon, 11 Aug 2008 17:15:31 +0000 |
parents | 89b597799b87 |
children | 7d5fe75f74c4 |
files | src/console_cmds.cpp src/settings.cpp src/settings_func.h |
diffstat | 3 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -1267,13 +1267,13 @@ DEF_CONSOLE_CMD(ConListPatches) { if (argc == 0) { - IConsoleHelp("List patch options. Usage: 'list_patches'"); + IConsoleHelp("List patch options. Usage: 'list_patches [<pre-filter>]'"); return true; } - if (argc != 1) return false; + if (argc > 2) return false; - IConsoleListPatches(); + IConsoleListPatches((argc == 2) ? argv[1] : NULL); return true; }
--- a/src/settings.cpp +++ b/src/settings.cpp @@ -2385,11 +2385,14 @@ } } -void IConsoleListPatches() +void IConsoleListPatches(const char *prefilter) { IConsolePrintF(CC_WARNING, "All patches with their current value:"); for (const SettingDesc *sd = _patch_settings; sd->save.cmd != SL_END; sd++) { + if (prefilter != NULL) { + if (strncmp(sd->desc.name, prefilter, min(strlen(sd->desc.name), strlen(prefilter))) != 0) continue; + } char value[80]; const void *ptr = GetVariableAddress((_game_mode == GM_MENU) ? &_settings_newgame : &_settings_game, &sd->save);
--- a/src/settings_func.h +++ b/src/settings_func.h @@ -10,7 +10,7 @@ void IConsoleSetPatchSetting(const char *name, const char *value); void IConsoleSetPatchSetting(const char *name, int32 value); void IConsoleGetPatchSetting(const char *name); -void IConsoleListPatches(); +void IConsoleListPatches(const char *prefilter); void LoadFromConfig(); void SaveToConfig();