Author: Michael Poole <mdpoole@troilus.org>
[ircu2.10.12-pk.git] / ircd / m_topic.c
index 9ef803ebaf3954199cee20c10ea88c2553e8fa61..8eebf458c1407eec5ed3b9ff8cf8c044b20955cd 100644 (file)
@@ -72,8 +72,17 @@ static void do_settopic(struct Client *sptr, struct Client *cptr,
      sendcmdto_serv_butone(sptr, CMD_TOPIC, cptr, "%H %Tu %Tu :%s", chptr,
                           chptr->creationtime, chptr->topic_time, chptr->topic);
    if (newtopic)
+   {
+     struct Membership *member;
+
+     /* If the member is delayed-join, show them. */
+     member = find_channel_member(sptr, chptr);
+     if (member && IsDelayedJoin(member))
+       RevealDelayedJoin(member);
+
      sendcmdto_channel_butserv_butone(from, CMD_TOPIC, chptr, NULL, 0,
                                       "%H :%s", chptr, chptr->topic);
+   }
       /* if this is the same topic as before we send it to the person that
        * set it (so they knew it went through ok), but don't bother sending
        * it to everyone else on the channel to save bandwidth