diff options
Diffstat (limited to 'skype')
| -rw-r--r-- | skype/README | 2 | ||||
| -rw-r--r-- | skype/skype.c | 22 | 
2 files changed, 14 insertions, 10 deletions
| diff --git a/skype/README b/skype/README index 1440810a..2705de67 100644 --- a/skype/README +++ b/skype/README @@ -79,8 +79,6 @@ NOTE: the <pass> option is not used currently.  == What needs to be done (aka. TODO) -- we can't ourselves join to &bitlbee (ignore such a message from skype) -  - mark received messages as read so that skype won't say there are unread messages  - Away status changes (send / receive) diff --git a/skype/skype.c b/skype/skype.c index 3dc96719..e1837063 100644 --- a/skype/skype.c +++ b/skype/skype.c @@ -14,6 +14,7 @@  struct skype_data  {  	struct im_connection *ic; +	char *username;  	int fd;  	char *txq;  	int tx_len; @@ -107,14 +108,17 @@ static gboolean skype_read_callback( gpointer data, gint fd, b_input_condition c  				status++;  				ptr = strchr(++user, ' ');  				*ptr = '\0'; -				ptr = g_strdup_printf("%s@skype.com", user); -				imcb_add_buddy(ic, ptr, NULL); -				if(strcmp(status, "OFFLINE") != 0) -					flags |= OPT_LOGGED_IN; -				if(strcmp(status, "ONLINE") != 0 && strcmp(status, "SKYPEME") != 0) -					flags |= OPT_AWAY; -				imcb_buddy_status(ic, ptr, flags, NULL, NULL); -				g_free(ptr); +				if(strcmp(user, sd->username) != 0) +				{ +					ptr = g_strdup_printf("%s@skype.com", user); +					imcb_add_buddy(ic, ptr, NULL); +					if(strcmp(status, "OFFLINE") != 0) +						flags |= OPT_LOGGED_IN; +					if(strcmp(status, "ONLINE") != 0 && strcmp(status, "SKYPEME") != 0) +						flags |= OPT_AWAY; +					imcb_buddy_status(ic, ptr, flags, NULL, NULL); +					g_free(ptr); +				}  			}  			else if(!strncmp(line, "CHATMESSAGE ", 12))  			{ @@ -220,6 +224,7 @@ static void skype_login( account_t *acc )  	/*imcb_add_buddy(ic, "test@skype.com", NULL);  	imcb_buddy_status(ic, "test@skype.com", OPT_LOGGED_IN, NULL, NULL);  	imcb_buddy_msg(ic, "test@skype.com", "test from skype plugin", 0, 0);*/ +	sd->username = g_strdup( acc->user );  	sd->ic = ic;  } @@ -227,6 +232,7 @@ static void skype_login( account_t *acc )  static void skype_logout( struct im_connection *ic )  {  	struct skype_data *sd = ic->proto_data; +	g_free(sd->username);  	g_free(sd);  } | 
