*** channel.c-old Sun Jan 21 10:04:15 1996 --- channel.c Thu Feb 15 03:45:14 1996 *************** *** 2248,2254 **** isnew = ChannelExists(parv[2]) ? 0 : 1; chptr = get_channel(sptr, parv[2], CREATE); oldts = chptr->channelts; ! doesop = (parv[4+args][0] == '@' || parv[4+args][1] == '@'); for (l = chptr->members; l && l->value.cptr; l = l->next) if (l->flags & MODE_CHANOP) --- 2248,2275 ---- isnew = ChannelExists(parv[2]) ? 0 : 1; chptr = get_channel(sptr, parv[2], CREATE); oldts = chptr->channelts; ! ! /* we only look if any ops are introduced if we'll actually need ! * to use the info ! */ ! if (!isnew && newts > 0 && oldts > 0 && newts != oldts) ! { ! static char nicks[BUFSIZE]; ! ! strcpy(nicks, parv[4+args]); ! for (s=strtoken(&p, nicks, " "); s; s=strtoken(&p, NULL, " ")) ! if (*s == '@' || s[1] == '@') ! { ! while (*s == '@' || *s == '+') ! s++; ! if (!(acptr = find_chasing(sptr, s, NULL))) ! continue; ! if (acptr->from != cptr) ! continue; ! doesop = 1; ! break; ! } ! } for (l = chptr->members; l && l->value.cptr; l = l->next) if (l->flags & MODE_CHANOP)