aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/nogaim.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/nogaim.c')
-rw-r--r--protocols/nogaim.c42
1 files changed, 14 insertions, 28 deletions
diff --git a/protocols/nogaim.c b/protocols/nogaim.c
index 29ae860a..28f76fff 100644
--- a/protocols/nogaim.c
+++ b/protocols/nogaim.c
@@ -13,7 +13,7 @@
* from scratch for BitlBee and doesn't contain any code from Gaim anymore
* (except for the function names).
*
- * Copyright 2002-2004 Wilmer van der Gaast <lintux@lintux.cx>
+ * Copyright 2002-2006 Wilmer van der Gaast <wilmer@gaast.net> and others
*/
/*
@@ -38,7 +38,7 @@
#include <ctype.h>
#include <iconv.h>
-static char *proto_away_alias[7][5] =
+static char *proto_away_alias[8][5] =
{
{ "Away from computer", "Away", "Extended away", NULL },
{ "NA", "N/A", "Not available", NULL },
@@ -46,6 +46,7 @@ static char *proto_away_alias[7][5] =
{ "Be right back", "BRB", NULL },
{ "On the phone", "Phone", "On phone", NULL },
{ "Out to lunch", "Lunch", "Food", NULL },
+ { "Invisible", "Hidden" },
{ NULL }
};
static char *proto_away_alias_find( GList *gcm, char *away );
@@ -304,7 +305,7 @@ 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], acc_id[33];
+ char text[1024], buf[1024], *acc_id;
char *msg;
account_t *a;
@@ -329,11 +330,13 @@ void serv_got_crap( struct gaim_connection *gc, char *format, ... )
/* 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 );
+ acc_id = g_strdup_printf( "%s(%s)", gc->prpl->name, gc->username );
else
- g_snprintf( acc_id, 32, "%s", gc->prpl->name );
+ acc_id = g_strdup( gc->prpl->name );
irc_usermsg( gc->irc, "%s - %s", acc_id, msg );
+
+ g_free( acc_id );
}
static gboolean send_keepalive( gpointer d )
@@ -351,7 +354,7 @@ void account_online( struct gaim_connection *gc )
user_t *u;
/* MSN servers sometimes redirect you to a different server and do
- the whole login sequence again, so subsequent calls to this
+ the whole login sequence again, so these "late" calls to this
function should be handled correctly. (IOW, ignored) */
if( gc->flags & OPT_LOGGED_IN )
return;
@@ -363,9 +366,11 @@ void account_online( struct gaim_connection *gc )
gc->keepalive = g_timeout_add( 60000, send_keepalive, gc );
gc->flags |= OPT_LOGGED_IN;
- if( u && u->away ) proto_away( gc, u->away );
+ /* Also necessary when we're not away, at least for some of the
+ protocols. */
+ proto_away( gc, u->away );
- if( !strcmp(gc->prpl->name, "icq") )
+ if( strcmp( gc->prpl->name, "ICQ" ) == 0 )
{
for( u = gc->irc->users; u; u = u->next )
if( u->gc == gc )
@@ -469,16 +474,6 @@ void do_ask_dialog( struct gaim_connection *gc, char *msg, void *data, void *doi
/* list.c */
-int bud_list_cache_exists( struct gaim_connection *gc )
-{
- return( 0 );
-}
-
-void do_import( struct gaim_connection *gc, void *null )
-{
- return;
-}
-
void add_buddy( struct gaim_connection *gc, char *group, char *handle, char *realname )
{
user_t *u;
@@ -530,6 +525,7 @@ void add_buddy( struct gaim_connection *gc, char *group, char *handle, char *rea
u->gc = gc;
u->handle = g_strdup( handle );
+ if( group ) u->group = g_strdup( group );
u->send_handler = buddy_send_handler;
u->last_typing_notice = 0;
}
@@ -553,11 +549,6 @@ struct buddy *find_buddy( struct gaim_connection *gc, char *handle )
return( b );
}
-void do_export( struct gaim_connection *gc )
-{
- return;
-}
-
void signoff_blocked( struct gaim_connection *gc )
{
return; /* Make all blocked users look invisible (TODO?) */
@@ -883,11 +874,6 @@ struct conversation *serv_got_joined_chat( struct gaim_connection *gc, int id, c
return( c );
}
-void serv_finish_login( struct gaim_connection *gc )
-{
- return;
-}
-
/* buddy_chat.c */