summaryrefslogtreecommitdiff
path: root/Applications
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-07-13 11:04:41 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-07-13 11:04:41 +0200
commit9a7b638743dc2ab9770ed54f8c0c2bd082cbb45c (patch)
treed866a4cd26191a9d1b1d538d4ce348a11fa59028 /Applications
parentd9d13f2445e33ae09c7423337f095fca205e519a (diff)
downloadserenity-9a7b638743dc2ab9770ed54f8c0c2bd082cbb45c.zip
IRCClient: Process incoming NOTICE messages like PRIVMSG.
They should be handled slightly differently, but at least now we're doing *something* withthem.
Diffstat (limited to 'Applications')
-rw-r--r--Applications/IRCClient/IRCClient.cpp12
-rw-r--r--Applications/IRCClient/IRCClient.h7
2 files changed, 15 insertions, 4 deletions
diff --git a/Applications/IRCClient/IRCClient.cpp b/Applications/IRCClient/IRCClient.cpp
index 976c2256d1..01821615b4 100644
--- a/Applications/IRCClient/IRCClient.cpp
+++ b/Applications/IRCClient/IRCClient.cpp
@@ -267,7 +267,10 @@ void IRCClient::handle(const Message& msg)
return handle_topic(msg);
if (msg.command == "PRIVMSG")
- return handle_privmsg(msg);
+ return handle_privmsg_or_notice(msg, PrivmsgOrNotice::Privmsg);
+
+ if (msg.command == "NOTICE")
+ return handle_privmsg_or_notice(msg, PrivmsgOrNotice::Notice);
if (msg.command == "NICK")
return handle_nick(msg);
@@ -326,7 +329,7 @@ bool IRCClient::is_nick_prefix(char ch) const
return false;
}
-void IRCClient::handle_privmsg(const Message& msg)
+void IRCClient::handle_privmsg_or_notice(const Message& msg, PrivmsgOrNotice type)
{
if (msg.arguments.size() < 2)
return;
@@ -337,7 +340,10 @@ void IRCClient::handle_privmsg(const Message& msg)
auto target = msg.arguments[0];
#ifdef IRC_DEBUG
- printf("handle_privmsg: sender_nick='%s', target='%s'\n", sender_nick.characters(), target.characters());
+ printf("handle_privmsg_or_notice: type='%s', sender_nick='%s', target='%s'\n",
+ type == PrivmsgOrNotice::Privmsg ? "privmsg" : "notice",
+ sender_nick.characters(),
+ target.characters());
#endif
if (sender_nick.is_empty())
diff --git a/Applications/IRCClient/IRCClient.h b/Applications/IRCClient/IRCClient.h
index e72b7cfc7a..f276b22c73 100644
--- a/Applications/IRCClient/IRCClient.h
+++ b/Applications/IRCClient/IRCClient.h
@@ -87,6 +87,11 @@ private:
Vector<String> arguments;
};
+ enum class PrivmsgOrNotice {
+ Privmsg,
+ Notice,
+ };
+
void receive_from_server();
void send(const String&);
void send_user();
@@ -109,7 +114,7 @@ private:
void handle_rpl_topicwhotime(const Message&);
void handle_rpl_endofnames(const Message&);
void handle_rpl_namreply(const Message&);
- void handle_privmsg(const Message&);
+ void handle_privmsg_or_notice(const Message&, PrivmsgOrNotice);
void handle_nick(const Message&);
void handle(const Message&);
void handle_user_command(const String&);