summaryrefslogtreecommitdiff
path: root/src/message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/message.cpp')
-rw-r--r--src/message.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/message.cpp b/src/message.cpp
index c90793090..59e961d9a 100644
--- a/src/message.cpp
+++ b/src/message.cpp
@@ -463,7 +463,7 @@ void TidyBan(char *ban)
char lst[MAXBUF];
-char* chlist(userrec *user)
+char* chlist(userrec *user,userrec* source)
{
char cmp[MAXBUF];
log(DEBUG,"chlist: %s",user->nick);
@@ -482,7 +482,8 @@ char* chlist(userrec *user)
strlcat(cmp," ",MAXBUF);
if (!strstr(lst,cmp))
{
- if ((!user->chans[i].channel->c_private) && (!user->chans[i].channel->secret))
+ // if the channel is NOT private/secret, OR the source user is on the channel
+ if (((!user->chans[i].channel->c_private) && (!user->chans[i].channel->secret)) || (has_channel(source,user->chans[i].channel)))
{
strlcat(lst,cmode(user,user->chans[i].channel),MAXBUF);
strlcat(lst,user->chans[i].channel->name,MAXBUF);