+LOCAL BOOLEAN
+Add_Invite( CLIENT *Client, CHANNEL *Channel, CHAR *Pattern )
+{
+ CHAR *mask;
+
+ assert( Client != NULL );
+ assert( Channel != NULL );
+ assert( Pattern != NULL );
+
+ mask = Lists_MakeMask( Pattern );
+
+ if( ! Lists_AddInvited( mask, Channel, FALSE )) return CONNECTED;
+
+ IRC_WriteStrChannelPrefix( Client, Channel, Client, TRUE, "MODE %s +I %s", Channel_Name( Channel ), mask );
+ if( Client_Type( Client ) == CLIENT_USER )
+ {
+ if( ! IRC_WriteStrClientPrefix( Client, Client, "MODE %s +I %s", Channel_Name( Channel ), mask )) return DISCONNECTED;
+ }
+ return CONNECTED;
+} /* Add_Invite */
+
+
+LOCAL BOOLEAN
+Add_Ban( CLIENT *Client, CHANNEL *Channel, CHAR *Pattern )
+{
+ CHAR *mask;
+
+ assert( Client != NULL );
+ assert( Channel != NULL );
+ assert( Pattern != NULL );
+
+ mask = Lists_MakeMask( Pattern );
+
+ if( ! Lists_AddBanned( mask, Channel )) return CONNECTED;
+
+ IRC_WriteStrChannelPrefix( Client, Channel, Client, TRUE, "MODE %s +b %s", Channel_Name( Channel ), mask );
+ if( Client_Type( Client ) == CLIENT_USER )
+ {
+ if( ! IRC_WriteStrClientPrefix( Client, Client, "MODE %s +b %s", Channel_Name( Channel ), mask )) return DISCONNECTED;
+ }
+ return CONNECTED;
+} /* Add_Ban */
+
+
+LOCAL BOOLEAN
+Del_Invite( CLIENT *Client, CHANNEL *Channel, CHAR *Pattern )
+{
+ CHAR *mask;
+
+ assert( Client != NULL );
+ assert( Channel != NULL );
+ assert( Pattern != NULL );
+
+ mask = Lists_MakeMask( Pattern );
+ Lists_DelInvited( mask, Channel );
+
+ IRC_WriteStrChannelPrefix( Client, Channel, Client, TRUE, "MODE %s -I %s", Channel_Name( Channel ), mask );
+ if( Client_Type( Client ) == CLIENT_USER )
+ {
+ if( ! IRC_WriteStrClientPrefix( Client, Client, "MODE %s -I %s", Channel_Name( Channel ), mask )) return DISCONNECTED;
+ }
+ return CONNECTED;
+} /* Del_Invite */
+
+
+LOCAL BOOLEAN
+Del_Ban( CLIENT *Client, CHANNEL *Channel, CHAR *Pattern )
+{
+ CHAR *mask;
+
+ assert( Client != NULL );
+ assert( Channel != NULL );
+ assert( Pattern != NULL );
+
+ mask = Lists_MakeMask( Pattern );
+ Lists_DelBanned( mask, Channel );
+
+ IRC_WriteStrChannelPrefix( Client, Channel, Client, TRUE, "MODE %s -b %s", Channel_Name( Channel ), mask );
+ if( Client_Type( Client ) == CLIENT_USER )
+ {
+ if( ! IRC_WriteStrClientPrefix( Client, Client, "MODE %s -b %s", Channel_Name( Channel ), mask )) return DISCONNECTED;
+ }
+ return CONNECTED;
+} /* Del_Ban */
+
+