aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@frugalware.org>2009-01-07 02:10:13 +0100
committerMiklos Vajna <vmiklos@frugalware.org>2009-01-07 02:10:13 +0100
commit078b0b909888bb0a39f7b5365c772866a8ff4d46 (patch)
treef15a16b766eea5881da4aa8d74c62adf099bb0a5
parent359f4d9ae19a45d0d7d34bc2ba27c41e0ab6730f (diff)
introduce skype_parse_users()
-rw-r--r--skype/skype.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/skype/skype.c b/skype/skype.c
index 07529e5c..5f1210ea 100644
--- a/skype/skype.c
+++ b/skype/skype.c
@@ -273,6 +273,21 @@ static char *skype_call_strerror(int err)
}
}
+static void skype_parse_users(struct im_connection *ic, char *line)
+{
+ char **i, **nicks, *ptr;
+
+ nicks = g_strsplit(line + 6, ", ", 0);
+ i = nicks;
+ while (*i) {
+ ptr = g_strdup_printf("GET USER %s ONLINESTATUS\n", *i);
+ skype_write(ic, ptr);
+ g_free(ptr);
+ i++;
+ }
+ g_strfreev(nicks);
+}
+
static gboolean skype_read_callback(gpointer data, gint fd,
b_input_condition cond)
{
@@ -296,19 +311,9 @@ static gboolean skype_read_callback(gpointer data, gint fd,
break;
if (set_getbool(&ic->acc->set, "skypeconsole_receive"))
imcb_buddy_msg(ic, "skypeconsole", line, 0, 0);
- if (!strncmp(line, "USERS ", 6)) {
- char **i;
- char **nicks;
-
- nicks = g_strsplit(line + 6, ", ", 0);
- i = nicks;
- while (*i) {
- g_snprintf(buf, 1024, "GET USER %s ONLINESTATUS\n", *i);
- skype_write(ic, buf);
- i++;
- }
- g_strfreev(nicks);
- } else if (!strncmp(line, "USER ", 5)) {
+ if (!strncmp(line, "USERS ", 6))
+ skype_parse_users(ic, line);
+ else if (!strncmp(line, "USER ", 5)) {
int flags = 0;
char *status = strrchr(line, ' ');
char *user = strchr(line, ' ');