summaryrefslogtreecommitdiff
path: root/src/modules/m_abbreviation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_abbreviation.cpp')
-rw-r--r--src/modules/m_abbreviation.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/modules/m_abbreviation.cpp b/src/modules/m_abbreviation.cpp
index dbda047b5..c80df1858 100644
--- a/src/modules/m_abbreviation.cpp
+++ b/src/modules/m_abbreviation.cpp
@@ -45,6 +45,7 @@ class ModuleAbbreviation : public Module
/* Look for any command that starts with the same characters, if it does, replace the command string with it */
size_t clen = command.length();
std::string foundcommand, matchlist;
+ size_t matches = 0;
bool foundmatch = false;
for (Commandtable::iterator n = ServerInstance->Parser->cmdlist.begin(); n != ServerInstance->Parser->cmdlist.end(); ++n)
{
@@ -53,6 +54,12 @@ class ModuleAbbreviation : public Module
if (command == n->first.substr(0, clen))
{
+ if (++matches > 10)
+ {
+ user->WriteNumeric(420, "%s :Ambiguous abbreviation and too many possible matches.", user->nick.c_str());
+ return false;
+ }
+
if (!foundmatch)
{
/* Found the command */