diff options
| -rw-r--r-- | bitlbee.h | 2 | ||||
| -rw-r--r-- | doc/user-guide/commands.xml | 10 | ||||
| -rw-r--r-- | irc.c | 1 | ||||
| -rw-r--r-- | root_commands.c | 17 | 
4 files changed, 30 insertions, 0 deletions
| @@ -159,6 +159,8 @@ void root_command_string( irc_t *irc, user_t *u, char *command, int flags );  void root_command( irc_t *irc, char *command[] );  gboolean bitlbee_shutdown( gpointer data, gint fd, b_input_condition cond ); +char *set_eval_root_nick( set_t *set, char *new_nick ); +  extern global_t global;  #endif diff --git a/doc/user-guide/commands.xml b/doc/user-guide/commands.xml index c45727b9..6d77f8cd 100644 --- a/doc/user-guide/commands.xml +++ b/doc/user-guide/commands.xml @@ -588,6 +588,16 @@  		</description>  	</bitlbee-setting> +	<bitlbee-setting name="root_nick" type="string" scope="global"> +		<default>root</default> + +		<description> +			<para> +				Normally the "bot" that takes all your BitlBee commands is called "root". If you don't like this name, you can rename it to anything else using the <emphasis>rename</emphasis> command, or by changing this setting. +			</para> +		</description> +	</bitlbee-setting> +  	<bitlbee-setting name="save_on_quit" type="boolean" scope="global">  		<default>true</default> @@ -150,6 +150,7 @@ irc_t *irc_new( int fd )  	set_add( &irc->set, "password", NULL, passchange, irc );  	set_add( &irc->set, "private", "true", set_eval_bool, irc );  	set_add( &irc->set, "query_order", "lifo", NULL, irc ); +	set_add( &irc->set, "root_nick", irc->mynick, set_eval_root_nick, irc );  	set_add( &irc->set, "save_on_quit", "true", set_eval_bool, irc );  	set_add( &irc->set, "simulate_netsplit", "true", set_eval_bool, irc );  	set_add( &irc->set, "strip_html", "true", NULL, irc ); diff --git a/root_commands.c b/root_commands.c index aec91455..4b27afe3 100644 --- a/root_commands.c +++ b/root_commands.c @@ -602,6 +602,9 @@ static void cmd_rename( irc_t *irc, char **cmd )  		{  			g_free( irc->mynick );  			irc->mynick = g_strdup( cmd[2] ); +			 +			if( strcmp( cmd[0], "set_rename" ) != 0 ) +				set_setstr( &irc->set, "root_nick", cmd[2] );  		}  		else if( u->send_handler == buddy_send_handler )  		{ @@ -612,6 +615,20 @@ static void cmd_rename( irc_t *irc, char **cmd )  	}  } +char *set_eval_root_nick( set_t *set, char *new_nick ) +{ +	irc_t *irc = set->data; +	 +	if( strcmp( irc->mynick, new_nick ) != 0 ) +	{ +		char *cmd[] = { "set_rename", irc->mynick, new_nick, NULL }; +		 +		cmd_rename( irc, cmd ); +	} +	 +	return strcmp( irc->mynick, new_nick ) == 0 ? new_nick : NULL; +} +  static void cmd_remove( irc_t *irc, char **cmd )  {  	user_t *u; | 
