- /* Validate modes */
- switch( *mode_ptr )
- {
- /* Channel modes */
- case 'i':
- /* Invite-Only */
- if( modeok ) x[0] = 'i';
- else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
- break;
- case 'm':
- /* Moderated */
- if( modeok ) x[0] = 'm';
- else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
- break;
- case 'n':
- /* kein Schreiben in den Channel von aussen */
- if( modeok ) x[0] = 'n';
- else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
- break;
- case 't':
- /* Topic Lock */
- if( modeok ) x[0] = 't';
- else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
- break;
- case 'P':
- /* Persistent channel */
- if( modeok )
+ /* Channel modes */
+ case 'i':
+ /* Invite-Only */
+ if( modeok ) x[0] = 'i';
+ else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
+ break;
+ case 'm':
+ /* Moderated */
+ if( modeok ) x[0] = 'm';
+ else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
+ break;
+ case 'n':
+ /* kein Schreiben in den Channel von aussen */
+ if( modeok ) x[0] = 'n';
+ else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
+ break;
+ case 't':
+ /* Topic Lock */
+ if( modeok ) x[0] = 't';
+ else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
+ break;
+ case 'P':
+ /* Persistent channel */
+ if( modeok )
+ {
+ if( set && ( ! Client_OperByMe( Client )))