diff --git a/Modules.cpp b/Modules.cpp index a7b0149050..b3ef005dc7 100644 --- a/Modules.cpp +++ b/Modules.cpp @@ -411,7 +411,7 @@ bool CModule::AddCommand(const CString& sCmd, CModCommand::ModCmdFunc func, cons void CModule::AddHelpCommand() { - AddCommand("Help", &CModule::HandleHelpCommand, "", "Generate this output"); + AddCommand("Help", &CModule::HandleHelpCommand, "search", "Generate this output"); } bool CModule::RemCommand(const CString& sCmd) @@ -445,12 +445,17 @@ bool CModule::HandleCommand(const CString& sLine) { } void CModule::HandleHelpCommand(const CString& sLine) { + CString sFilter = sLine.Token(1, true); + unsigned int iFilterLength = sFilter.size(); CTable Table; map::const_iterator it; CModCommand::InitHelp(Table); - for (it = m_mCommands.begin(); it != m_mCommands.end(); ++it) - it->second.AddHelp(Table); + for (it = m_mCommands.begin(); it != m_mCommands.end(); ++it) { + if (sFilter.empty() || (it->second.GetCommand().Equals(sFilter, false, iFilterLength))) { + it->second.AddHelp(Table); + } + } PutModule(Table); }