aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--degesch.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/degesch.c b/degesch.c
index defdb29..88ba593 100644
--- a/degesch.c
+++ b/degesch.c
@@ -4716,6 +4716,19 @@ irc_handle_rpl_userhost (struct server *s, const struct irc_message *msg)
}
static void
+irc_handle_rpl_umodeis (struct server *s, const struct irc_message *msg)
+{
+ if (msg->params.len < 2)
+ return;
+
+ str_reset (&s->irc_user_mode);
+ irc_handle_mode_user (s, msg->params.vector + 1);
+
+ // XXX: do we want to log a message?
+ refresh_prompt (s->ctx);
+}
+
+static void
irc_handle_rpl_namreply (struct server *s, const struct irc_message *msg)
{
if (msg->params.len < 4)
@@ -5127,6 +5140,8 @@ irc_process_numeric (struct server *s,
irc_handle_rpl_isupport (s, msg); break;
case IRC_RPL_USERHOST:
irc_handle_rpl_userhost (s, msg); break;
+ case IRC_RPL_UMODEIS:
+ irc_handle_rpl_umodeis (s, msg); buffer = NULL; break;
case IRC_RPL_NAMREPLY:
irc_handle_rpl_namreply (s, msg); buffer = NULL; break;
case IRC_RPL_ENDOFNAMES: