summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command_parse.cpp12
-rw-r--r--src/configreader.cpp4
-rw-r--r--src/modules/m_abbreviation.cpp16
3 files changed, 24 insertions, 8 deletions
diff --git a/src/command_parse.cpp b/src/command_parse.cpp
index 0b2ea69c9..5b8b5b7f9 100644
--- a/src/command_parse.cpp
+++ b/src/command_parse.cpp
@@ -148,7 +148,7 @@ int CommandParser::LoopCall(User* user, Command* CommandObj, const std::vector<s
bool CommandParser::IsValidCommand(const std::string &commandname, unsigned int pcnt, User * user)
{
- Commandable::iterator n = cmdlist.find(commandname);
+ Commandtable::iterator n = cmdlist.find(commandname);
if (n != cmdlist.end())
{
@@ -172,7 +172,7 @@ bool CommandParser::IsValidCommand(const std::string &commandname, unsigned int
Command* CommandParser::GetHandler(const std::string &commandname)
{
- Commandable::iterator n = cmdlist.find(commandname);
+ Commandtable::iterator n = cmdlist.find(commandname);
if (n != cmdlist.end())
return n->second;
@@ -183,7 +183,7 @@ Command* CommandParser::GetHandler(const std::string &commandname)
CmdResult CommandParser::CallHandler(const std::string &commandname, const std::vector<std::string>& parameters, User *user)
{
- Commandable::iterator n = cmdlist.find(commandname);
+ Commandtable::iterator n = cmdlist.find(commandname);
if (n != cmdlist.end())
{
@@ -285,7 +285,7 @@ bool CommandParser::ProcessCommand(User *user, std::string &cmd)
}
/* find the command, check it exists */
- Commandable::iterator cm = cmdlist.find(command);
+ Commandtable::iterator cm = cmdlist.find(command);
if (cm == cmdlist.end())
{
@@ -368,7 +368,7 @@ bool CommandParser::ProcessCommand(User *user, std::string &cmd)
void CommandParser::RemoveCommands(const char* source)
{
- Commandable::iterator i,safei;
+ Commandtable::iterator i,safei;
for (i = cmdlist.begin(); i != cmdlist.end();)
{
safei = i;
@@ -377,7 +377,7 @@ void CommandParser::RemoveCommands(const char* source)
}
}
-void CommandParser::RemoveCommand(Commandable::iterator safei, const char* source)
+void CommandParser::RemoveCommand(Commandtable::iterator safei, const char* source)
{
Command* x = safei->second;
if (x->source == std::string(source))
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 2320496c8..f8f17038b 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -281,13 +281,13 @@ bool InitializeDisabledCommands(const char* data, InspIRCd* ServerInstance)
std::string thiscmd;
/* Enable everything first */
- for (Commandable::iterator x = ServerInstance->Parser->cmdlist.begin(); x != ServerInstance->Parser->cmdlist.end(); x++)
+ for (Commandtable::iterator x = ServerInstance->Parser->cmdlist.begin(); x != ServerInstance->Parser->cmdlist.end(); x++)
x->second->Disable(false);
/* Now disable all the ones which the user wants disabled */
while (dcmds >> thiscmd)
{
- Commandable::iterator cm = ServerInstance->Parser->cmdlist.find(thiscmd);
+ Commandtable::iterator cm = ServerInstance->Parser->cmdlist.find(thiscmd);
if (cm != ServerInstance->Parser->cmdlist.end())
{
cm->second->Disable(true);
diff --git a/src/modules/m_abbreviation.cpp b/src/modules/m_abbreviation.cpp
index bc04cc307..35a6082d9 100644
--- a/src/modules/m_abbreviation.cpp
+++ b/src/modules/m_abbreviation.cpp
@@ -45,6 +45,22 @@ class ModuleAbbreviation : public Module
ServerInstance->Logs->Log("m_abbreviation", DEBUG, "Abbreviated command: %s", command.c_str());
+ size_t clen = command.length();
+ for (Commandtable::iterator n = ServerInstance->Parser->cmdlist.begin(); n != ServerInstance->Parser->cmdlist.end(); ++n)
+ {
+ if (n->first.length() < clen)
+ continue;
+
+ ServerInstance->Logs->Log("m_abbreviation", DEBUG, "command=%s abbr=%s", command.c_str(), n->first.substr(0, clen).c_str());
+ if (command == n->first.substr(0, clen))
+ {
+ /* Found the command */
+ command = n->first;
+ return false;
+ }
+ }
+
+ command += '.';
return false;
}
};