X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_topic.c;h=4fb1a8f0d0384ecff1da3e9a2b6fc461f84e3738;hb=refs%2Fheads%2Fupstream;hp=9ef803ebaf3954199cee20c10ea88c2553e8fa61;hpb=75ea26d2c0bd982631d149f6e2d94c67231baa32;p=ircu2.10.12-pk.git diff --git a/ircd/m_topic.c b/ircd/m_topic.c index 9ef803e..4fb1a8f 100644 --- a/ircd/m_topic.c +++ b/ircd/m_topic.c @@ -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 @@ -188,6 +197,7 @@ int ms_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) if (parc > 3 && (ts = atoi(parv[2])) && chptr->creationtime < ts) continue; + ts = 0; /* Default to the current time if no topic_time is passed. */ if (parc > 4 && (ts = atoi(parv[3])) && chptr->topic_time > ts) continue;