added MODE_HALFOP (+h, %)
[ircu2.10.12-pk.git] / ircd / m_topic.c
index 37ae26f41512dedf6dce634f4ca12a139d60f784..d967e049243fa862051941bc8d705fe0b5501a64 100644 (file)
@@ -142,7 +142,7 @@ int m_topic(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
                   chptr->topic_time);
       }
     }
-    else if ((chptr->mode.mode & MODE_TOPICLIMIT) && (!is_chan_op(sptr, chptr) && !(IsNetServ(sptr) && IsSecurityServ(sptr) && IsChannelService(sptr))))
+    else if ((chptr->mode.mode & MODE_TOPICLIMIT) && (!is_chan_op(sptr, chptr) && !is_halfop(sptr, chptr) && !(IsNetServ(sptr) && IsSecurityServ(sptr) && IsChannelService(sptr))))
       send_reply(sptr, ERR_CHANOPRIVSNEEDED, chptr->chname);
     else if (!client_can_send_to_channel(sptr, chptr, 1))
       send_reply(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname);