summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2020-01-16 15:23:40 +0000
committerSadie Powell <sadie@witchery.services>2020-01-16 15:23:40 +0000
commit8df3d792bc99d9dd73db7a601ebe8d4a397c3522 (patch)
tree5360406208cda4e50b7b2d38441b3d269b542778 /include
parent130e4e9b43bd6d9190474eadb4ddbb2c50f6279a (diff)
Fix STATUSMSG tag messages not including the status in the target.
Diffstat (limited to 'include')
-rw-r--r--include/modules/ctctags.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/include/modules/ctctags.h b/include/modules/ctctags.h
index d0f0f83bd..6b7f81a4c 100644
--- a/include/modules/ctctags.h
+++ b/include/modules/ctctags.h
@@ -30,11 +30,24 @@ namespace CTCTags
class CTCTags::TagMessage : public ClientProtocol::Message
{
+private:
+ void PushTarget(const char* target, char status)
+ {
+ if (status)
+ {
+ std::string rawtarget(1, status);
+ rawtarget.append(target);
+ PushParam(rawtarget);
+ }
+ else
+ PushParamRef(target);
+ }
+
public:
- TagMessage(User* source, const Channel* targetchan, const ClientProtocol::TagMap& Tags)
+ TagMessage(User* source, const Channel* targetchan, const ClientProtocol::TagMap& Tags, char status = 0)
: ClientProtocol::Message("TAGMSG", source)
{
- PushParamRef(targetchan->name);
+ PushTarget(targetchan->name.c_str(), status);
AddTags(Tags);
}
@@ -48,10 +61,17 @@ class CTCTags::TagMessage : public ClientProtocol::Message
AddTags(Tags);
}
- TagMessage(User* source, const char* targetstr, const ClientProtocol::TagMap& Tags)
+ TagMessage(User* source, const char* targetstr, const ClientProtocol::TagMap& Tags, char status = 0)
: ClientProtocol::Message("TAGMSG", source)
{
- PushParam(targetstr);
+ PushTarget(targetstr, status);
+ AddTags(Tags);
+ }
+
+ TagMessage(const char* sourcestr, const char* targetstr, const ClientProtocol::TagMap& Tags, char status = 0)
+ : ClientProtocol::Message("TAGMSG", sourcestr)
+ {
+ PushTarget(targetstr, status);
AddTags(Tags);
}
};