diff options
Diffstat (limited to 'irc_im.c')
| -rw-r--r-- | irc_im.c | 31 | 
1 files changed, 28 insertions, 3 deletions
| @@ -25,8 +25,10 @@  #include "bitlbee.h" + +/* IM->IRC callbacks */ +  static const struct irc_user_funcs irc_user_im_funcs; -static const struct bee_ui_funcs irc_ui_funcs;  static gboolean bee_irc_user_new( bee_t *bee, bee_user_t *bu )  { @@ -36,7 +38,8 @@ static gboolean bee_irc_user_new( bee_t *bee, bee_user_t *bu )  	memset( nick, 0, MAX_NICK_LENGTH + 1 );  	strcpy( nick, nick_get( bu->ic->acc, bu->handle ) ); -	iu = irc_user_new( (irc_t*) bee->ui_data, nick ); +	bu->ui_data = iu = irc_user_new( (irc_t*) bee->ui_data, nick ); +	iu->bu = bu;  	if( ( s = strchr( bu->handle, '@' ) ) )  	{ @@ -65,11 +68,33 @@ static gboolean bee_irc_user_new( bee_t *bee, bee_user_t *bu )  	return TRUE;  } +static gboolean bee_irc_user_free( bee_t *bee, bee_user_t *bu ) +{ +	return irc_user_free( bee->ui_data, bu->ui_data ); +} +static gboolean bee_irc_user_status( bee_t *bee, bee_user_t *bu, bee_user_t *old ) +{ +	return TRUE; +} -static const struct bee_ui_funcs irc_ui_funcs = { +const struct bee_ui_funcs irc_ui_funcs = {  	bee_irc_user_new, +	bee_irc_user_free, +	bee_irc_user_status,  }; + +/* IRC->IM calls */ + +static gboolean bee_irc_user_privmsg( irc_user_t *iu, const char *msg ) +{ +	if( iu->bu ) +		return bee_user_msg( iu->irc->b, iu->bu, msg, 0 ); +	else +		return FALSE; +} +  static const struct irc_user_funcs irc_user_im_funcs = { +	bee_irc_user_privmsg,  }; | 
