- c2c = My_Bans;
- while( c2c )
- {
- next = c2c->next;
- if(( c2c->channel == Chan ) && ( strcasecmp( c2c->mask, Mask ) == 0 ))
- {
- /* dieser Eintrag muss geloescht werden */
- Log( LOG_DEBUG, "Deleted \"%s\" from ban list for \"%s\"." , c2c->mask, Channel_Name( Chan ));
- if( last ) last->next = next;
- else My_Bans = next;
- free( c2c );
- }
- else last = c2c;
- c2c = next;
- }
-} /* Lists_DelBanned */
-
-
-GLOBAL bool
-Lists_ShowBans( CLIENT *Client, CHANNEL *Channel )
-{
- C2C *c2c;
-
- assert( Client != NULL );
- assert( Channel != NULL );
-
- c2c = My_Bans;
- while( c2c )
- {
- if( c2c->channel == Channel )
- {
- /* Eintrag fuer Channel gefunden; ausgeben: */
- if( ! IRC_WriteStrClient( Client, RPL_BANLIST_MSG, Client_ID( Client ), Channel_Name( Channel ), c2c->mask )) return DISCONNECTED;
+ e = Lists_GetFirst(h);
+ while (e) {
+ if (strcasecmp(e->mask, Mask) == 0) {
+ LogDebug("Deleted \"%s\" from list", e->mask);
+ victim = e;
+ e = victim->next;
+ Lists_Unlink(h, last, victim);
+ continue;