X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Fchannel.c;h=922b308337bb310d8ce8f2471df5a04e81cc1597;hb=47026e14ce661a041a0151f6c1e0c79e26d08d01;hp=ac5eb5c4616370015d9f7c4ed679ddd67c7f64c8;hpb=ca32c1b311379445d1c8bee5705a9371cf2fa1a7;p=ngircd.git diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c index ac5eb5c4..922b3083 100644 --- a/src/ngircd/channel.c +++ b/src/ngircd/channel.c @@ -17,7 +17,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: channel.c,v 1.54 2005/09/02 12:50:25 alex Exp $"; +static char UNUSED id[] = "$Id: channel.c,v 1.56 2006/07/24 22:54:09 alex Exp $"; #include "imp.h" #include @@ -106,7 +106,8 @@ Channel_InitPredefined( void ) if (chan) { Channel_ModeAdd(chan, 'P'); - Channel_SetTopic(chan, NULL, + if (array_start(&Conf_Channel[i].topic) != NULL) + Channel_SetTopic(chan, NULL, array_start(&Conf_Channel[i].topic)); array_free(&Conf_Channel[i].topic); @@ -158,17 +159,13 @@ Channel_Join( CLIENT *Client, char *Name ) assert( Client != NULL ); assert( Name != NULL ); - /* Valider Channel-Name? */ - if( ! Channel_IsValidName( Name )) - { + if( ! Channel_IsValidName( Name )) { IRC_WriteStrClient( Client, ERR_NOSUCHCHANNEL_MSG, Client_ID( Client ), Name ); return false; } - /* Channel suchen */ chan = Channel_Search( Name ); - if( chan ) - { + if( chan ) { /* Ist der Client bereits Mitglied? */ if( Get_Cl2Chan( chan, Client )) return false; } @@ -194,7 +191,6 @@ Channel_Part( CLIENT *Client, CLIENT *Origin, char *Name, char *Reason ) assert( Name != NULL ); assert( Reason != NULL ); - /* Channel suchen */ chan = Channel_Search( Name ); if(( ! chan ) || ( ! Get_Cl2Chan( chan, Client ))) { @@ -226,21 +222,20 @@ Channel_Kick( CLIENT *Client, CLIENT *Origin, char *Name, char *Reason ) return; } - /* Ist der User Mitglied in dem Channel? */ if( ! Channel_IsMemberOf( chan, Origin )) { IRC_WriteStrClient( Origin, ERR_NOTONCHANNEL_MSG, Client_ID( Origin ), Name ); return; } - /* Ist der User Channel-Operator? */ + /* Is User Channel-Operator? */ if( ! strchr( Channel_UserModes( chan, Origin ), 'o' )) { IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Name); return; } - /* Ist der Ziel-User Mitglied im Channel? */ + /* Ist the kickED User member of channel? */ if( ! Channel_IsMemberOf( chan, Client )) { IRC_WriteStrClient( Origin, ERR_USERNOTINCHANNEL_MSG, Client_ID( Origin ), Client_ID( Client ), Name ); @@ -520,13 +515,11 @@ Channel_ModeDel( CHANNEL *Chan, char Mode ) * if the mode was removed return true. * if the channel did not have the mode, return false. */ - char x[2], *p; + char *p; assert( Chan != NULL ); - x[0] = Mode; x[1] = '\0'; - - p = strchr( Chan->modes, x[0] ); + p = strchr( Chan->modes, Mode ); if( ! p ) return false; /* Channel has mode -> delete */ @@ -576,7 +569,7 @@ Channel_UserModeDel( CHANNEL *Chan, CLIENT *Client, char Mode ) */ CL2CHAN *cl2chan; - char x[2], *p; + char *p; assert( Chan != NULL ); assert( Client != NULL ); @@ -584,9 +577,7 @@ Channel_UserModeDel( CHANNEL *Chan, CLIENT *Client, char Mode ) cl2chan = Get_Cl2Chan( Chan, Client ); assert( cl2chan != NULL ); - x[0] = Mode; x[1] = '\0'; - - p = strchr( cl2chan->modes, x[0] ); + p = strchr( cl2chan->modes, Mode ); if( ! p ) return false; /* Client has Mode -> delete */ @@ -743,7 +734,7 @@ Channel_Write( CHANNEL *Chan, CLIENT *From, CLIENT *Client, char *Text ) /* Is the client banned? */ if( Lists_CheckBanned( From, Chan )) { - /* Client is banned, bus is he channel operator or has voice? */ + /* Client is banned, but is he channel operator or has voice? */ if(( ! has_voice ) && ( ! is_op )) ok = false; }