void CModule::HandleHelpCommand(const CString& sLine) {
    CString sFilter = sLine.Token(1).AsLower();
    CTable Table;

    CModCommand::InitHelp(Table);
    for (const auto& it : m_mCommands) {
        CString sCmd = it.second.GetCommand().AsLower();
        if (sFilter.empty() ||
            (sCmd.StartsWith(sFilter, CString::CaseSensitive)) ||
            sCmd.WildCmp(sFilter)) {
            it.second.AddHelp(Table);
        }
    }
    if (Table.empty()) {
        PutModule(t_f("No matches for '{1}'")(sFilter));
    } else {
        PutModule(Table);
    }
}
void CModule::HandleHelpCommand(const CString& sLine) {
    CString sFilter = sLine.Token(1).AsLower();
    CTable Table;

    CModCommand::InitHelp(Table);
    for (const auto& it : m_mCommands) {
        CString sCmd = it.second.GetCommand().AsLower();
        if (sFilter.empty() ||
            (sCmd.StartsWith(sFilter, CString::CaseSensitive)) ||
            sCmd.WildCmp(sFilter)) {
            it.second.AddHelp(Table);
        }
    }
    if (Table.empty()) {
        PutModule(t_f("No matches for '{1}'")(sFilter));
    } else {
        PutModule(Table);
    }
}