summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-09-03 14:09:03 +0200
committerAttila Molnar <attilamolnar@hush.com>2014-09-03 14:09:03 +0200
commitf3e803f5b9d8478e1f4d490a2f59ba7fca10a6b9 (patch)
tree0c6b894cace5932c2e4ea8e124e210f021266665
parent39bd7db53837fd5d2a0e4d2e9ca54e0f309a0d17 (diff)
Populate a Modes::ChangeList object in ModeParser::Process()
-rw-r--r--include/mode.h4
-rw-r--r--src/mode.cpp2
2 files changed, 6 insertions, 0 deletions
diff --git a/include/mode.h b/include/mode.h
index 596a7bcbe..981c29a27 100644
--- a/include/mode.h
+++ b/include/mode.h
@@ -535,6 +535,10 @@ class CoreExport ModeParser : public fakederef<ModeParser>
*/
std::multimap<std::string, ModeWatcher*> modewatchermap;
+ /** Last processed mode change
+ */
+ Modes::ChangeList LastChangeList;
+
/** Displays the current modes of a channel or user.
* Used by ModeParser::Process.
*/
diff --git a/src/mode.cpp b/src/mode.cpp
index 4c31a94d7..b684af885 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -375,6 +375,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
LastParse.clear();
LastParseParams.clear();
LastParseTranslate.clear();
+ LastChangeList.clear();
if ((!targetchannel) && ((!targetuser) || (IS_SERVER(targetuser))))
{
@@ -474,6 +475,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
LastParseParams.push_back(parameter);
LastParseTranslate.push_back(mh->GetTranslateType());
}
+ LastChangeList.push(mh, adding, parameter);
if ((output_mode.length() + output_parameters.length() > 450)
|| (output_mode.length() > 100)