From 9fa2cbd93e90f6e9ba4e37280f7fda16b188e130 Mon Sep 17 00:00:00 2001 From: glx Date: Mon, 11 Aug 2008 17:15:31 +0000 Subject: (svn r14041) -Feature(tte): make it possible to filter list_patches output like it's done for other list_* console commands --- src/console_cmds.cpp | 6 +++--- src/settings.cpp | 5 ++++- src/settings_func.h | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index c73c76468..2286f865f 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -1267,13 +1267,13 @@ DEF_CONSOLE_CMD(ConPatch) DEF_CONSOLE_CMD(ConListPatches) { if (argc == 0) { - IConsoleHelp("List patch options. Usage: 'list_patches'"); + IConsoleHelp("List patch options. Usage: 'list_patches []'"); return true; } - if (argc != 1) return false; + if (argc > 2) return false; - IConsoleListPatches(); + IConsoleListPatches((argc == 2) ? argv[1] : NULL); return true; } diff --git a/src/settings.cpp b/src/settings.cpp index c648843bf..8f82d7eae 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2385,11 +2385,14 @@ void IConsoleGetPatchSetting(const char *name) } } -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); diff --git a/src/settings_func.h b/src/settings_func.h index 725cc3bd1..2dcb705c0 100644 --- 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(); -- cgit v1.2.3-70-g09d2