diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2006-01-21 23:23:58 +0100 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2006-01-21 23:23:58 +0100 | 
| commit | f1d38f20f760376f43b90a105486cf3ff2fbf2c4 (patch) | |
| tree | d0bab65e5b810639d298f29be9afc20542856af0 /irc_commands.c | |
| parent | f73b9697f9be18e04ec7458634520f9dd2e2432f (diff) | |
Fixed counting of arguments in i[rp]c_exec(), made them a bit too simple.
Diffstat (limited to 'irc_commands.c')
| -rw-r--r-- | irc_commands.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/irc_commands.c b/irc_commands.c index e4dc4f3e..9e47b83b 100644 --- a/irc_commands.c +++ b/irc_commands.c @@ -578,7 +578,7 @@ static const command_t irc_commands[] = {  void irc_exec( irc_t *irc, char *cmd[] )  {	 -	int i; +	int i, n_arg;  	if( !cmd[0] )  		return; @@ -586,6 +586,9 @@ void irc_exec( irc_t *irc, char *cmd[] )  	for( i = 0; irc_commands[i].command; i++ )  		if( g_strcasecmp( irc_commands[i].command, cmd[0] ) == 0 )  		{ +			/* There should be no typo in the next line: */ +			for( n_arg = 0; cmd[n_arg]; n_arg ++ ); n_arg --; +			  			if( irc_commands[i].flags & IRC_CMD_PRE_LOGIN && irc->status >= USTATUS_LOGGED_IN )  			{  				irc_reply( irc, 462, ":Only allowed before logging in" ); @@ -598,7 +601,7 @@ void irc_exec( irc_t *irc, char *cmd[] )  			{  				irc_reply( irc, 481, ":Permission denied - You're not an IRC operator" );  			} -			else if( !cmd[irc_commands[i].required_parameters] ) +			else if( n_arg < irc_commands[i].required_parameters )  			{  				irc_reply( irc, 461, "%s :Need more parameters", cmd[0] );  			} | 
