diff options
| -rw-r--r-- | root_commands.c | 66 | 
1 files changed, 35 insertions, 31 deletions
| diff --git a/root_commands.c b/root_commands.c index 73670d3a..7f3a6599 100644 --- a/root_commands.c +++ b/root_commands.c @@ -566,7 +566,6 @@ static void cmd_account( irc_t *irc, char **cmd )  	}  } -#if 0  static void cmd_add( irc_t *irc, char **cmd )  {  	account_t *a; @@ -579,7 +578,7 @@ static void cmd_add( irc_t *irc, char **cmd )  		cmd ++;  	} -	if( !( a = account_get( irc, cmd[1] ) ) ) +	if( !( a = account_get( irc->b, cmd[1] ) ) )  	{  		irc_usermsg( irc, "Invalid account" );  		return; @@ -597,7 +596,7 @@ static void cmd_add( irc_t *irc, char **cmd )  			irc_usermsg( irc, "The requested nick `%s' is invalid", cmd[3] );  			return;  		} -		else if( user_find( irc, cmd[3] ) ) +		else if( irc_user_by_name( irc, cmd[3] ) )  		{  			irc_usermsg( irc, "The requested nick `%s' already exists", cmd[3] );  			return; @@ -611,14 +610,37 @@ static void cmd_add( irc_t *irc, char **cmd )  	if( add_on_server )  		a->ic->acc->prpl->add_buddy( a->ic, cmd[2], NULL );  	else -		/* Yeah, officially this is a call-*back*... So if we just -		   called add_buddy, we'll wait for the IM server to respond -		   before we do this. */ -		imcb_add_buddy( a->ic, cmd[2], NULL ); +		/* Only for add -tmp. For regular adds, this callback will +		   be called once the IM server confirms. */ +		bee_user_new( irc->b, a->ic, cmd[2] );  	irc_usermsg( irc, "Adding `%s' to your contact list", cmd[2]  );  } +static void cmd_remove( irc_t *irc, char **cmd ) +{ +	irc_user_t *iu; +	bee_user_t *bu; +	char *s; +	 +	if( !( iu = irc_user_by_name( irc, cmd[1] ) ) || !( bu = iu->bu ) ) +	{ +		irc_usermsg( irc, "Buddy `%s' not found", cmd[1] ); +		return; +	} +	s = g_strdup( bu->handle ); +	 +	bu->ic->acc->prpl->remove_buddy( bu->ic, bu->handle, NULL ); +	nick_del( bu->ic->acc, bu->handle ); +	irc_user_free( irc, cmd[1] ); +	 +	irc_usermsg( irc, "Buddy `%s' (nick %s) removed from contact list", s, cmd[1] ); +	g_free( s ); +	 +	return; +} + +#if 0  static void cmd_info( irc_t *irc, char **cmd )  {  	struct im_connection *ic; @@ -732,28 +754,6 @@ char *set_eval_control_channel( set_t *set, char *new_name )  	return strcmp( irc->channel, new_name ) == 0 ? new_name : SET_INVALID;  } -static void cmd_remove( irc_t *irc, char **cmd ) -{ -	user_t *u; -	char *s; -	 -	if( !( u = user_find( irc, cmd[1] ) ) || !u->ic ) -	{ -		irc_usermsg( irc, "Buddy `%s' not found", cmd[1] ); -		return; -	} -	s = g_strdup( u->handle ); -	 -	u->ic->acc->prpl->remove_buddy( u->ic, u->handle, NULL ); -	nick_del( u->ic->acc, u->handle ); -	user_del( irc, cmd[1] ); -	 -	irc_usermsg( irc, "Buddy `%s' (nick %s) removed from contact list", s, cmd[1] ); -	g_free( s ); -	 -	return; -} -  static void cmd_block( irc_t *irc, char **cmd )  {  	struct im_connection *ic; @@ -872,6 +872,7 @@ static void cmd_allow( irc_t *irc, char **cmd )  		irc_usermsg( irc, "Buddy `%s' moved from your block- to your allow-list", cmd[2] );  	}  } +#endif  static void cmd_yesno( irc_t *irc, char **cmd )  { @@ -916,6 +917,7 @@ static void cmd_set( irc_t *irc, char **cmd )  	cmd_set_real( irc, cmd, NULL, NULL );  } +#if 0  static void cmd_blist( irc_t *irc, char **cmd )  {  	int online = 0, away = 0, offline = 0; @@ -1183,18 +1185,20 @@ const command_t commands[] = {  	{ "register",       1, cmd_register,       0 },  	{ "drop",           1, cmd_drop,           0 },  	{ "save",           0, cmd_save,           0 }, -#if 0  	{ "add",            2, cmd_add,            0 }, +	{ "remove",         1, cmd_remove,         0 }, +#if 0  	{ "info",           1, cmd_info,           0 },  #endif  	{ "rename",         2, cmd_rename,         0 },  #if 0 -	{ "remove",         1, cmd_remove,         0 },  	{ "block",          1, cmd_block,          0 },  	{ "allow",          1, cmd_allow,          0 }, +#endif  	{ "set",            0, cmd_set,            0 },  	{ "yes",            0, cmd_yesno,          0 },  	{ "no",             0, cmd_yesno,          0 }, +#if 0  	{ "blist",          0, cmd_blist,          0 },  	{ "nick",           1, cmd_nick,           0 },  	{ "qlist",          0, cmd_qlist,          0 }, | 
