X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/45f5f151f80c1f8ef7f16e9729921d502944fbac..12cbce8059ffefbb295c9a0a1bf37745e4f3bc18:/modules/core/m_part.c diff --git a/modules/core/m_part.c b/modules/core/m_part.c index d6ed969..5e38047 100644 --- a/modules/core/m_part.c +++ b/modules/core/m_part.c @@ -58,7 +58,6 @@ static void part_one_client(struct Client *client_p, /* ** m_part -** parv[0] = sender prefix ** parv[1] = channel ** parv[2] = reason */ @@ -80,8 +79,6 @@ m_part(struct Client *client_p, struct Client *source_p, int parc, const char *p if(MyClient(source_p) && !IsFloodDone(source_p)) flood_endgrace(source_p); - strip_colour(reason); - while(name) { part_one_client(client_p, source_p, name, reason); @@ -104,6 +101,7 @@ part_one_client(struct Client *client_p, struct Client *source_p, char *name, ch { struct Channel *chptr; struct membership *msptr; + char reason2[BUFSIZE]; if((chptr = find_channel(name)) == NULL) { @@ -130,6 +128,12 @@ part_one_client(struct Client *client_p, struct Client *source_p, char *name, ch (source_p->localClient->firsttime + ConfigFileEntry.anti_spam_exit_message_time) < rb_current_time())))) { + if(chptr->mode.mode & MODE_NOCOLOR) + { + rb_strlcpy(reason2, reason, BUFSIZE); + strip_colour(reason2); + reason = reason2; + } sendto_server(client_p, chptr, CAP_TS6, NOCAPS, ":%s PART %s :%s", use_id(source_p), chptr->chname, reason); sendto_channel_local(ALL_MEMBERS, chptr, ":%s!%s@%s PART %s :%s",