diff options
-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); } |