+ if(MyClient(source_p) && !is_chanop_voiced(msptr) &&
+ !IsOper(source_p) &&
+ !add_channel_target(source_p, chptr))
+ {
+ sendto_one(source_p, form_str(ERR_TARGCHANGE),
+ me.name, source_p->name, chptr->chname);
+ return 0;
+ }
+
+ if(((chptr->mode.mode & MODE_TOPICLIMIT) == 0 ||
+ get_channel_access(source_p, msptr) >= CHFL_CHANOP) &&
+ (!MyClient(source_p) ||
+ can_send(chptr, source_p, msptr)))