{
struct Channel *chptr;
char *p;
+ int visible;
sendto_one(source_p, form_str(RPL_LISTSTART), me.name, source_p->name);
return;
}
- if (!SecretChannel(chptr) || IsMember(source_p, chptr) || operspy)
+ visible = !SecretChannel(chptr) || IsMember(source_p, chptr);
+ if (visible || operspy)
sendto_one(source_p, form_str(RPL_LIST), me.name, source_p->name,
- (operspy && SecretChannel(chptr)) ? "!" : "",
+ visible ? "" : "!",
chptr->chname, rb_dlink_list_length(&chptr->members),
chptr->topic == NULL ? "" : chptr->topic);
static void safelist_one_channel(struct Client *source_p, struct Channel *chptr)
{
struct ListClient *safelist_data = source_p->localClient->safelist_data;
+ int visible;
- if (SecretChannel(chptr) && !IsMember(source_p, chptr) && !safelist_data->operspy)
+ visible = !SecretChannel(chptr) || IsMember(source_p, chptr);
+ if (!visible && !safelist_data->operspy)
return;
if ((unsigned int)chptr->members.length < safelist_data->users_min
return;
sendto_one(source_p, form_str(RPL_LIST), me.name, source_p->name,
- (safelist_data->operspy && SecretChannel(chptr)) ? "!" : "",
+ visible ? "" : "!",
chptr->chname, rb_dlink_list_length(&chptr->members),
chptr->topic == NULL ? "" : chptr->topic);
}