+ else ok = IRC_WriteStrClient( Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID( Origin ), Req->command );
+ break;
+
+ /* Channel lists */
+ case 'I':
+ /* Invite lists */
+ if( arg_arg > mode_arg )
+ {
+ /* modify list */
+ if( modeok )
+ {
+ if( set ) Add_Invite( Origin, Client, Channel, Req->argv[arg_arg] );
+ else Del_Invite( Origin, Client, Channel, Req->argv[arg_arg] );
+ }
+ else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
+ Req->argv[arg_arg][0] = '\0';
+ arg_arg++;
+ }
+ else Lists_ShowInvites( Origin, Channel );
+ break;
+ case 'b':
+ /* Ban lists */
+ if( arg_arg > mode_arg )
+ {
+ /* modify list */
+ if( modeok )
+ {
+ if( set ) Add_Ban( Origin, Client, Channel, Req->argv[arg_arg] );
+ else Del_Ban( Origin, Client, Channel, Req->argv[arg_arg] );
+ }
+ else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
+ Req->argv[arg_arg][0] = '\0';
+ arg_arg++;
+ }
+ else Lists_ShowBans( Origin, Channel );
+ break;
+
+ default:
+ Log( LOG_DEBUG, "Unknown mode \"%c%c\" from \"%s\" on %s!?", set ? '+' : '-', *mode_ptr, Client_ID( Origin ), Channel_Name( Channel ));
+ if( Client_Type( Client ) != CLIENT_SERVER ) ok = IRC_WriteStrClient( Origin, ERR_UMODEUNKNOWNFLAG2_MSG, Client_ID( Origin ), set ? '+' : '-', *mode_ptr );
+ x[0] = '\0';
+ goto chan_exit;