diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2005-11-28 02:14:35 +0100 | 
|---|---|---|
| committer | Jelmer Vernooij <jelmer@samba.org> | 2005-11-28 02:14:35 +0100 | 
| commit | cfcc5877b737800ab84cd67d9c413e7254ac1f50 (patch) | |
| tree | b4302a38f8a7a90c0328b2a15f947f06c7c8266f /protocols/nogaim.c | |
| parent | cf136714caa13e2cd4bf8a69a29c08f3a1518f59 (diff) | |
| parent | b20b32f0785f9a1eff448382a98e64812469e112 (diff) | |
Merge from Wilmer
Diffstat (limited to 'protocols/nogaim.c')
| -rw-r--r-- | protocols/nogaim.c | 41 | 
1 files changed, 28 insertions, 13 deletions
| diff --git a/protocols/nogaim.c b/protocols/nogaim.c index ead86f65..474b91b2 100644 --- a/protocols/nogaim.c +++ b/protocols/nogaim.c @@ -294,8 +294,9 @@ void hide_login_progress_error( struct gaim_connection *gc, char *msg )  void serv_got_crap( struct gaim_connection *gc, char *format, ... )  {  	va_list params; -	char text[1024], buf[1024]; +	char text[1024], buf[1024], acc_id[33];  	char *msg; +	account_t *a;  	va_start( params, format );  	g_vsnprintf( text, sizeof( text ), format, params ); @@ -311,7 +312,18 @@ void serv_got_crap( struct gaim_connection *gc, char *format, ... )  	    ( ( gc->flags & OPT_CONN_HTML ) && set_getint( gc->irc, "strip_html" ) ) )  		strip_html( msg ); -	irc_usermsg( gc->irc, "%s(%s) - %s", gc->prpl->name, gc->username, msg ); +	/* Try to find a different connection on the same protocol. */ +	for( a = gc->irc->accounts; a; a = a->next ) +		if( a->prpl == gc->prpl && a->gc != gc ) +			break; +	 +	/* If we found one, add the screenname to the acc_id. */ +	if( a ) +		g_snprintf( acc_id, 32, "%s(%s)", gc->prpl->name, gc->username ); +	else +		g_snprintf( acc_id, 32, "%s", gc->prpl->name ); +	 +	irc_usermsg( gc->irc, "%s - %s", acc_id, msg );  }  static gboolean send_keepalive( gpointer d ) @@ -705,31 +717,34 @@ void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 f  	    do_iconv( "UTF-8", set_getstr( irc, "charset" ), msg, buf, 0, 8192 ) != -1 )  		msg = buf; -	while( strlen( msg ) > 450 ) +	while( strlen( msg ) > 425 )  	{  		char tmp, *nl; -		tmp = msg[450]; -		msg[450] = 0; +		tmp = msg[425]; +		msg[425] = 0; -		/* If there's a newline in this string, split up there so we're not -		   going to split up lines. If there isn't a newline, well, too bad. */ -		if( ( nl = strrchr( msg, '\n' ) ) ) +		/* If there's a newline/space in this string, split up there, +		   looks a bit prettier. */ +		if( ( nl = strrchr( msg, '\n' ) ) || ( nl = strchr( msg, ' ' ) ) ) +		{ +			msg[425] = tmp; +			tmp = *nl;  			*nl = 0; +		}  		irc_msgfrom( irc, u->nick, msg ); -		msg[450] = tmp; -		  		/* Move on. */  		if( nl )  		{ -			*nl = '\n'; +			*nl = tmp;  			msg = nl + 1;  		}  		else  		{ -			msg += 450; +			msg[425] = tmp; +			msg += 425;  		}  	}  	irc_msgfrom( irc, u->nick, msg ); @@ -743,7 +758,7 @@ void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout )  		return;  	if( ( u = user_findhandle( gc, handle ) ) ) -		irc_noticefrom( gc->irc, u->nick, "* Typing a message *" ); +		irc_msgfrom( gc->irc, u->nick, "\1TYPING 1\1" );  }  void serv_got_chat_left( struct gaim_connection *gc, int id ) | 
