aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--skype/README2
-rw-r--r--skype/skype.c22
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);
}