commit 33927ee8546bb5e74839718ee00ee657e33830ad from: Alexander Barton date: Wed Jan 08 23:09:34 2003 UTC - Fixed up previous CHANINFO patch ... commit - 3d46fc6036c4b17831acd453f6ce54e301ae1d0a commit + 33927ee8546bb5e74839718ee00ee657e33830ad blob - b7cf74f7f765528397872fda9c3c912233e87ed4 blob + be2d7670466ff99988075b0dda2221fb68914f12 --- src/ngircd/irc-channel.c +++ src/ngircd/irc-channel.c @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-channel.c,v 1.21.2.4 2003/01/08 20:32:17 alex Exp $"; +static char UNUSED id[] = "$Id: irc-channel.c,v 1.21.2.5 2003/01/08 23:09:34 alex Exp $"; #include "imp.h" #include @@ -371,11 +371,11 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req ) assert( Req != NULL ); /* Bad number of parameters? */ - if(( Req->argc < 1 ) || ( Req->argc > 5 )) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command ); + if(( Req->argc < 2 ) || ( Req->argc == 4 ) || ( Req->argc > 5 )) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command ); /* Compatibility kludge */ - if( Req->argc == 5 ) arg_topic = 5; - else if( Req->argc == 3 ) arg_topic = 3; + if( Req->argc == 5 ) arg_topic = 4; + else if( Req->argc == 3 ) arg_topic = 2; else arg_topic = -1; /* Search origin */ @@ -409,7 +409,7 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req ) { /* We got a topic */ ptr = Channel_Topic( chan ); - if( ! *ptr ) + if(( ! *ptr ) && ( Req->argv[arg_topic][0] )) { /* OK, there is no topic jet */ Channel_SetTopic( chan, Req->argv[arg_topic] );